Hvad er systemprogrammering?
Alle programmerere skriver eksekverbar kode til computere, men hvad der adskiller systemprogrammere fra applikationsprogrammører er formålet med softwaren, de skriver. Applikationsprogrammering producerer software, der får en computers hardware til at generere noget for brugeren, hvad enten det er et regneark eller grafik til et spil. Systemprogrammering producerer software, der får adgang til og kontrollerer den indre funktion af en computers hardware og operativsystem.
Applikationsprogrammering involverer generelt udstedelse af systemkommandoer til at bruge de grundlæggende funktioner i en computers hardware og operativsystem, såsom lagring af et bestemt stykke data i computerens fysiske hukommelse eller en fil på harddisken. Disse former for programmer beskæftiger sig ikke med detaljer om, hvordan harddisken eller den fysiske hukommelse fungerer. Omvendt bekymrer systemprogrammører sig om detaljerne i, hvordan et operativsystem og hardwarekomponenter fungerer. Dette giver dem mulighed for at opbygge den software, der defragmenterer harddiske og kontrollerer integriteten af en computers fysiske hukommelse.
Ud over at være i stand til at opbygge sådanne værktøjer er systemprogrammører typisk eksperter i kernefunktionen af operativsystemer. Alle programmerere er fortrolige med systemopkald, trådstyring og håndtering af input / output, men systemprogrammering kræver, at softwareingeniøren skal kunne manipulere disse operativsystemmekanismer. Dette gør det muligt for en systemprogrammør at udføre specialiserede installationer og automatisere systemvedligeholdelsesopgaver.
Kendskab til et operativsystems kerne er også nødvendigt for at maksimere en applikations ydelse på en bestemt hardwarekonfiguration. For eksempel har meget travle onlineforhandlere brug for deres websteder og transaktionsbehandlingssystemer for at køre så effektivt og pålideligt som muligt. Ved hjælp af hans eller hendes viden om den interne mekanik i operativsystemer og hardwarekomponenter, såsom hvordan man får et bestemt operativsystem til at optimere dets trådhåndtering eller hvilke algoritmer, der kører hurtigst på hvilke hardwarekomponenter, kan en systemprogrammør hjælpe med at finjustere en applikations ydelse.
Denne detaljerede adgang til den indre funktion af hardware og operativsystemkomponenter kræver, at systemprogrammering udføres på et sprog, der tillader denne form for hardware-adgang til lavt niveau. Sprog som Java®, Python ™ eller Ruby on Rails® er det, programmerere kalder sprog på højt niveau. Dette betyder, at de letter applikationsprogrammering ved ikke at gøre programmereren til at håndtere de fine detaljer i hardwarestyring. Systemprogrammering kræver nøjagtigt denne form for adgang, så systemprogrammører bruger et lavt sprog som C eller C ++.