Hva er systemprogrammering?
Alle programmerere skriver kjørbar kode for datamaskiner, men det som skiller systemprogrammerere fra applikasjonsprogrammerere er formålet med programvaren de skriver. Applikasjonsprogrammering produserer programvare som lager datamaskinens maskinvare til å generere noe for brukeren, det være seg et regneark eller grafikken for et spill. Systemprogrammering produserer programvare som får tilgang til og kontrollerer den indre funksjonen til datamaskinens maskinvare og operativsystem.
Applikasjonsprogrammering innebærer generelt å utstede systemkommandoer for å bruke de grunnleggende funksjonene til datamaskinens maskinvare og operativsystem, for eksempel å lagre et bestemt stykke data i datamaskinens fysiske minne eller en fil på den harde drivkraften. Denne typen programmer er ikke opptatt av detaljer om hvordan harddisken eller det fysiske minnet fungerer. Motsatt angår systemprogrammerere seg med detaljene om hvordan et operativsystem og maskinvarekomponenter fungerer. Dette lar dem bygge programvaren som defragments hARD driver og sjekker integriteten til datamaskinens fysiske minne.
I tillegg til å kunne bygge slike verktøy, er systemprogrammerere typisk eksperter på kjernefunksjonen til operativsystemer. Alle programmerere er kjent med systemanrop, trådstyring og håndtering av inngang/utgang, men systemprogrammering krever at programvareingeniøren kan manipulere disse operativsystemmekanismene. Dette gjør at en systemprogrammerer kan utføre spesialiserte installasjoner og automatisere systemvedlikeholdsoppgaver.
Kunnskap om et operativsystemets kjerne er også nødvendig for å maksimere applikasjonens ytelse på en bestemt maskinvarekonfigurasjon. For eksempel trenger veldig travle online forhandlere sine nettsteder og transaksjonsbehandlingssystemer for å kjøre så effektivt, og pålitelig, som mulig. Bruke hans eller hennes kunnskap om den interne mekanikken i operativsystemer og hardwaRe -komponenter, for eksempel hvordan du lager et bestemt operativsystem optimaliserer trådhåndteringen eller hvilke algoritmer som kjører raskest på hvilke maskinvarekomponenter, en systemprogrammerer kan hjelpe deg med å finjustere en applikasjons ytelse.
Denne detaljerte tilgangen til de indre arbeidene med maskinvare- og operativsystemkomponenter krever at systemprogrammering skal gjøres på et språk som tillater denne typen maskinvaretilgang på lavt nivå. Språk som Java®, Python ™ eller Ruby on Rails® er det programmerere omtaler som språk på høyt nivå. Dette betyr at de gjør applikasjonsprogrammering enklere ved ikke å få programmereren til å håndtere de fine detaljene i maskinvarestyring. Systemprogrammering krever nøyaktig denne typen tilgang, så systemprogrammerere bruker et språk på lavt nivå som C eller C ++.