Systemprogrammering - Systems programming

Systemer programmering , eller systemprogrammering , er aktiviteten til programmering datamaskin systemprogramvaren . Den primære kjennetegn ved systemprogrammering sammenlignet med programmering er at programmering har som mål å produsere programvare som gir tjenester til brukeren direkte (f.eks. Tekstbehandler ), mens systemprogrammering tar sikte på å produsere programvare og programvareplattformer som tilbyr tjenester til annen programvare, er begrenset ytelse, eller begge deler (f.eks. operativsystemer , beregningsvitenskapelige applikasjoner, spillmotorer , industriell automatisering og programvare som en tjeneste ).

Systemprogrammering krever stor grad av maskinvarebevissthet. Målet er å oppnå effektiv bruk av tilgjengelige ressurser, enten fordi selve programvaren er ytelseskritisk eller fordi selv små effektivitetsforbedringer direkte forvandles til betydelige besparelser av tid eller penger.

Oversikt

Følgende attributter kjennetegner systemprogrammering:

  • Den programmerer kan gjøre antagelser om maskinvaren og andre egenskaper ved systemet at programmet kjøres på, og vil ofte utnytte disse egenskapene, for eksempel ved å bruke en algoritme som er kjent for å være effektiv når den brukes med spesifikk hardware.
  • Vanligvis brukes et programmeringsspråk på lavt nivå eller programmeringsspråkdialekt slik at:
    • Programmer kan operere i ressursbegrensede miljøer
    • Programmer kan være effektive med lite kjøretidskostnader , muligens ha enten et lite kjøretidsbibliotek eller ingen i det hele tatt
    • Programmer kan bruke direkte og "rå" kontroll over minnetilgang og kontrollflyt
    • Programmereren kan skrive deler av programmet direkte på monteringsspråk
  • Ofte kan ikke systemprogrammer kjøres i en feilsøkingsprogram . Noen ganger kan du kjøre programmet i et simulert miljø for å redusere dette problemet.

Systemprogrammering er tilstrekkelig forskjellig fra applikasjonsprogrammering som programmerere har en tendens til å spesialisere seg på det ene eller det andre.

I systemprogrammering er ofte begrensede programmeringsfasiliteter tilgjengelig. Bruken av automatisk søppelinnsamling er ikke vanlig, og det er noen ganger vanskelig å feilsøke . Den runtime-bibliotek , hvis tilgjengelig i det hele tatt, er vanligvis langt mindre kraftig, og gjør mindre feilsjekking. På grunn av disse begrensningene brukes ofte overvåking og logging ; operativsystemer kan ha ekstremt forseggjorte loggingsundersystemer.

Implementering av visse deler i operativsystemer og nettverk krever systemprogrammering, for eksempel implementering av personsøk ( virtuelt minne ) eller en enhetsdriver for et operativsystem.

Historie

Opprinnelig skrev systemprogrammerere alltid på samlingsspråk . Eksperimenter med maskinvarestøtte på språkhøyt nivå på slutten av 1960 -tallet førte til språk som PL/S , BLISS , BCPL og utvidet ALGOL for Burroughs store systemer . Forth har også applikasjoner som systemspråk. På 1970 -tallet ble C allestedsnærværende, hjulpet av veksten av Unix . Nylig har en delmengde av C ++, kalt Embedded C ++, sett noen bruk, for eksempel brukes den i I/O Kit -driverne til macOS .

Alternativ bruk

Av historiske årsaker bruker noen organisasjoner begrepet systemprogrammerer for å beskrive en jobbfunksjon som mer nøyaktig vil bli kalt systemadministrator . Dette gjelder spesielt i organisasjoner hvis datamaskinressurser historisk har vært dominert av mainframes , selv om begrepet til og med brukes til å beskrive jobbfunksjoner som ikke involverer mainframes. Denne bruken oppsto fordi administrasjon av IBM -hovedrammer ofte innebar skriving av tilpasset assembler -kode ( IBM's Basic Assembly Language (BAL)), som integrerte med operativsystemet som OS/MVS , DOS/VSE eller VM/CMS . Noen IBM -programvareprodukter hadde faktisk betydelige kodebidrag fra kundeprogrammeringspersonale. Denne typen programmering er gradvis mindre vanlig, men begrepet systemprogrammerer er fremdeles de facto jobbtittel for ansatte som administrerer IBMs hovedrammer direkte.

Se også

Referanser

Videre lesning