Systemprogrammering - Systems programming

Systemer programmering , eller systemets programmering , er aktiviteten for programmering edb -system-software . Det primære kendetegn ved systemprogrammering i forhold til applikationsprogrammering er, at applikationsprogrammering har til formål at producere software, der leverer tjenester til brugeren direkte (f.eks. Tekstbehandler ), mens systemprogrammering har til formål at producere software og softwareplatforme, der leverer tjenester til anden software, er begrænset ydeevne eller begge dele (f.eks. operativsystemer , computingsvidenskabelige applikationer, spilmotorer , industriel automatisering og software som en service ).

Systemprogrammering kræver en stor grad af hardware -bevidsthed. Dets mål er at opnå effektiv udnyttelse af tilgængelige ressourcer, enten fordi selve softwaren er præstationskritisk, eller fordi selv små effektivitetsforbedringer direkte omdannes til betydelige besparelser af tid eller penge.

Oversigt

Følgende attributter kendetegner systemprogrammering:

  • Den programmør kan gøre antagelser om den hardware og andre egenskaber ved systemet, at programmet kører på, og vil ofte udnytte disse egenskaber, for eksempel ved hjælp af en algoritme, der er kendt for at være effektiv, når det bruges med bestemt hardware.
  • Normalt bruges et programmeringssprog på lavt niveau eller dialekt med programmeringssprog, så:
    • Programmer kan fungere i ressourcebegrænsede miljøer
    • Programmer kan være effektive med lidt runtime -omkostninger, muligvis have enten et lille runtime -bibliotek eller slet ingen
    • Programmer kan bruge direkte og "rå" kontrol over hukommelsesadgang og kontrolflow
    • Programmereren kan skrive dele af programmet direkte på samlingssprog
  • Ofte kan systemprogrammer ikke køres i en debugger . Kørsel af programmet i et simuleret miljø kan nogle gange bruges til at reducere dette problem.

Systemprogrammering er tilstrækkeligt forskellig fra applikationsprogrammering, som programmører har tendens til at specialisere sig i det ene eller det andet.

I systemprogrammering er der ofte begrænsede programmeringsfaciliteter til rådighed. Brugen af automatisk affaldssamling er ikke almindelig, og fejlfinding er undertiden svær at gøre. Den runtime bibliotek , hvis den er tilgængelig på alle, er som regel langt mindre magtfulde, og gør mindre fejlkontrol. På grund af disse begrænsninger bruges overvågning og logning ofte; operativsystemer kan have ekstremt detaljerede logningssubsystemer.

Implementering af visse dele i operativsystemer og netværk kræver systemprogrammering, f.eks. Implementering af personsøgning ( virtuel hukommelse ) eller en enhedsdriver til et operativsystem.

Historie

Oprindeligt skrev systemprogrammører uvægerligt på samlingssprog . Eksperimenter med hardware -support på sproghøjt niveau i slutningen af ​​1960'erne førte til sprog som PL/S , BLISS , BCPL og udvidet ALGOL til Burroughs store systemer . Forth har også applikationer som systemsprog. I 1970'erne blev C allestedsnærværende, hjulpet af væksten af Unix . For nylig har en delmængde af C ++ kaldet Embedded C ++ set en vis anvendelse, for eksempel bruges den i I/O Kit -drivere til macOS .

Alternativ brug

Af historiske årsager bruger nogle organisationer udtrykket systemprogrammerer til at beskrive en jobfunktion, der mere præcist vil blive betegnet systemadministrator . Dette gælder især i organisationer, hvis computerressourcer historisk har været domineret af mainframes , selvom udtrykket endda bruges til at beskrive jobfunktioner, der ikke involverer mainframes. Denne brug opstod, fordi administration af IBM -mainframes ofte involverede skrivning af brugerdefineret assembler -kode ( IBM's Basic Assembly Language (BAL)), som integrerede med operativsystemet, såsom OS/MVS , DOS/VSE eller VM/CMS . Nogle IBM -softwareprodukter havde faktisk betydelige kodebidrag fra kundeprogrammeringspersonale. Denne type programmering er gradvist mindre almindelig, men udtrykket systemprogrammerer er stadig de facto jobtitel for personale, der administrerer IBM -mainframes direkte.

Se også

Referencer

Yderligere læsning