Styresystemet definerer vores computeroplevelse. Det er det første program, vi ser, når vi tænder computeren, og det sidste program, vi ser, når computeren slukkes. Det er den software, der aktiverer alle de programmer, vi bruger. Operativsystemet organiserer og styrer hardwaren på vores skriveborde og i vores hænder, men alligevel kan de fleste brugere ikke med sikkerhed sige præcist, hvad det er, som operativsystemet gør.

I denne udgave af HowStuffWorks fortæller vi dig, hvad et stykke software skal gøre for at blive kaldt et styresystem, og vi viser dig, hvordan styresystemet arbejder for at forvandle en samling hardware til et kraftfuldt computerværktøj!

De bare knogler
Det er vigtigt at vide, at det ikke er alle computere, der har et styresystem. Den computer, der styrer mikrobølgeovnen i dit køkken, har f.eks. ikke brug for et styresystem. Den har et sæt relativt enkle opgaver at udføre, meget enkle input- og outputmetoder (et tastatur og en LCD-skærm) og enkelt, aldrig skiftende hardware at styre. For en computer som denne ville et styresystem være unødvendig bagage, der tilføjer kompleksitet, hvor det ikke er nødvendigt. I stedet kører computeren i en mikrobølgeovn blot et enkelt program hele tiden.

For computersystemer, der går ud over mikrobølgeovnens kompleksitet, kan et operativsystem imidlertid være nøglen til større driftseffektivitet og lettere applikationsudvikling. Alle stationære computere har styresystemer. De mest almindelige er Windows-familien af operativsystemer, UNIX-familien af operativsystemer og Macintosh-operativsystemerne. Der findes hundredvis af andre styresystemer til specielle formål, herunder specialiseringer til mainframes, robotteknologi, produktion, realtidskontrolsystemer osv.

På det enkleste niveau gør et styresystem to ting:

  • Det forvalter computersystemets hardware- og softwareressourcer. Disse ressourcer omfatter f.eks. processor, hukommelse, diskplads osv.
  • Det giver programmerne en stabil, konsistent måde at håndtere hardwaren på uden at skulle kende alle detaljerne om hardwaren.

Den første opgave, nemlig forvaltning af hardware- og softwareressourcerne, er meget vigtig, da forskellige programmer og indtastningsmetoder konkurrerer om den centrale processorenheds (CPU) opmærksomhed og kræver hukommelse, lagerplads og input/output (I/O)-båndbredde til deres egne formål. I denne egenskab spiller operativsystemet rollen som den gode forælder, der sørger for, at hvert program får de nødvendige ressourcer, samtidig med at det spiller pænt sammen med alle de andre programmer, samt forvalter systemets begrænsede kapacitet til størst mulig gavn for alle brugere og programmer.

Den anden opgave, nemlig at tilvejebringe en ensartet programgrænseflade, er særlig vigtig, hvis der skal være mere end én computer af en bestemt type, der bruger operativsystemet, eller hvis der kan ske ændringer i computerens hardware. En konsistent applikationsprogramgrænseflade (API) gør det muligt for en softwareudvikler at skrive et program på én computer og have en høj grad af tillid til, at det vil kunne køre på en anden computer af samme type, selv om mængden af hukommelse eller lagerplads er forskellig på de to maskiner. Selv om en bestemt computer er unik, kan et operativsystem sikre, at applikationer fortsat kan køre, når der sker hardwareopgraderinger og -opdateringer, fordi det er operativsystemet og ikke applikationen, der har ansvaret for forvaltningen af hardwaren og fordelingen af dens ressourcer. Windows 98 er et godt eksempel på den fleksibilitet, som et styresystem giver. Windows 98 kører på hardware fra tusindvis af leverandører. Det kan rumme tusindvis af forskellige printere, diskdrev og særlige perifere enheder i alle mulige kombinationer.

I den brede familie af styresystemer findes der generelt fire typer, der er kategoriseret efter de typer computere, de styrer, og den slags applikationer, de understøtter. De brede kategorier er:

  • Realtidsoperativsystemer (RTOS) – Realtidsoperativsystemer anvendes til at styre maskiner, videnskabelige instrumenter og industrielle systemer. Et RTOS har typisk meget få muligheder for brugergrænseflade og ingen slutbrugerværktøjer, da systemet er en “forseglet kasse”, når det leveres til brug. En meget vigtig del af et RTOS består i at styre computerens ressourcer, således at en bestemt operation udføres på nøjagtig samme tid hver gang, den udføres. I en kompleks maskine kan det være lige så katastrofalt at få en del til at bevæge sig hurtigere, blot fordi der er systemressourcer til rådighed, som det kan være lige så katastrofalt, hvis den slet ikke bevæger sig, fordi der er travlt i systemet.
  • Enkeltbruger, enkeltopgave – Som navnet antyder, er dette styresystem designet til at styre computeren, så én bruger effektivt kan gøre én ting ad gangen. Palm OS til Palm-håndholdte computere er et godt eksempel på et moderne single-user, single-task-operativsystem.
  • Single-user, multi-tasking – Dette er den type operativsystem, som de fleste mennesker bruger på deres stationære og bærbare computere i dag. Windows 98 og MacOS er begge eksempler på et styresystem, der lader en enkelt bruger have flere programmer i gang på samme tid. Det er f.eks. fuldt ud muligt for en Windows-bruger at skrive en note i et tekstbehandlingsprogram, samtidig med at han/hun henter en fil fra internettet, mens han/hun udskriver teksten i en e-mail-besked.
  • Flerbruger – Et flerbruger-operativsystem giver mange forskellige brugere mulighed for at udnytte computerens ressourcer samtidig. Operativsystemet skal sørge for, at der er balance mellem de forskellige brugeres krav, og at hvert af de programmer, de bruger, har tilstrækkelige og separate ressourcer, så et problem hos én bruger ikke påvirker hele brugergruppen. Unix, VMS og mainframe-operativsystemer, såsom MVS, er eksempler på flerbruger-operativsystemer.

Det er vigtigt at skelne her mellem flerbruger-operativsystemer og enkeltbruger-operativsystemer, der understøtter netværk. Windows 2000 og Novell Netware kan hver især understøtte hundredvis eller tusindvis af brugere i netværk, men selve styresystemerne er ikke egentlige flerbrugerstyresystemer. Systemadministratoren er den eneste “bruger” i Windows 2000 eller Netware. Netværksunderstøttelsen og alle de fjernbrugerlogins, som netværket muliggør, er i styresystemets overordnede plan et program, der køres af den administrative bruger.

Med de forskellige typer operativsystemer i baghovedet er det tid til at se på de grundlæggende funktioner, som et operativsystem tilbyder.

Vækkeopkald
Når strømmen til en computer tændes, er det første program, der køres, normalt et sæt instruktioner, der opbevares i computerens skrivebeskyttede hukommelse (ROM), og som undersøger systemets hardware for at sikre sig, at alt fungerer korrekt. Denne POST (power-on self test) kontrollerer CPU’en, hukommelsen og BIOS (Basic Input-output systems) for fejl og gemmer resultatet i en særlig hukommelsesplacering. Når POST’en er gennemført med succes, begynder den software, der er indlæst i ROM (undertiden kaldet firmware), at aktivere computerens diskdrev. I de fleste moderne computere finder computeren, når den aktiverer harddisken, den første del af styresystemet: bootstrap-loader’en.

Den bootstrap loader er et lille program, der har en enkelt funktion: Det indlæser operativsystemet i hukommelsen og giver det mulighed for at begynde at fungere. I den mest grundlæggende form opretter bootstrap loader de små driverprogrammer, der danner grænseflade med og styrer computerens forskellige hardwareundersystemer. Den opretter de dele af hukommelsen, som indeholder operativsystemet, brugeroplysninger og programmer. Den opretter de datastrukturer, der skal indeholde de utallige signaler, flag og semaforer, som bruges til at kommunikere inden for og mellem computerens undersystemer og programmer. Derefter overdrager den kontrollen med computeren til operativsystemet.

Opgaverne for operativsystemet kan i den mest generelle forstand inddeles i seks kategorier:

  • Processorstyring
  • Hukommelsesstyring
  • Enhedsstyring
  • Lagerstyring
  • Programgrænseflade
  • Brugergrænseflade

Mens der er nogle, der hævder, at et styresystem bør udføre mere end disse seks opgaver, og nogle leverandører af styresystemer bygger mange flere hjælpeprogrammer og hjælpefunktioner ind i deres styresystemer, men disse seks opgaver udgør kernen i næsten alle styresystemer. Lad os se på de værktøjer, som styresystemet bruger til at udføre hver af disse funktioner.

Procesorstyring
Kernen i styringen af processoren kommer ned til to relaterede spørgsmål:

  • Sikring af, at hver proces og hvert program får nok af processorens tid til at fungere korrekt
  • Anvendelse af så mange processorcyklusser til reelt arbejde som muligt

Den grundlæggende softwareenhed, som operativsystemet beskæftiger sig med ved planlægning af processorenes arbejde, er enten en proces eller en tråd, afhængigt af operativsystemet.

Det er fristende at tænke på en proces som et program, men det giver et ufuldstændigt billede af, hvordan processer forholder sig til styresystemet og hardwaren. Det program, du ser (tekstbehandlingsprogram eller regneark eller spil), er ganske vist en proces, men det program kan få flere andre processer til at starte, f.eks. til at udføre opgaver som kommunikation med andre enheder eller andre computere. Der er også mange processer, der kører uden at give dig direkte beviser på, at de nogensinde har eksisteret. En proces er altså software, der udfører en handling og kan styres – af en bruger, af andre programmer eller af styresystemet.

Det er processer, snarere end programmer, som styres af operativsystemet og planlægges til udførelse af CPU’en. I et single-tasking-system er tidsplanen ukompliceret. Operativsystemet lader programmet begynde at køre og suspenderer kun udførelsen længe nok til at håndtere interrupts og brugerinput. Afbrydelser er særlige signaler, der sendes af hardware eller software til CPU’en. Det er som om en del af computeren pludselig løftede hånden for at bede om CPU’ens opmærksomhed under et livligt møde. Nogle gange planlægger operativsystemet processernes prioritet, så afbrydelser maskeres – det vil sige, at operativsystemet ignorerer afbrydelser fra nogle kilder, så et bestemt arbejde kan blive afsluttet så hurtigt som muligt. Der er nogle interrupts (f.eks. fra fejltilstande eller problemer med hukommelsen), som er så vigtige, at de ikke kan ignoreres. Disse ikke-maskérbare interrupts (NMI’er) skal håndteres med det samme, uanset hvilke andre opgaver der er på spil.

Mens afbrydelser komplicerer udførelsen af processer i et single-tasking-system i nogen grad, bliver operativsystemets opgave meget mere kompliceret i et multi-tasking-system. Nu skal operativsystemet arrangere udførelsen af programmerne, så man tror, at der sker flere ting på samme tid. Dette er kompliceret, fordi CPU’en kun kan gøre én ting ad gangen. For at give indtryk af, at der sker mange ting på samme tid, er operativsystemet nødt til at skifte mellem forskellige processer tusindvis af gange i sekundet. Det foregår på følgende måde.

  • En proces optager en vis mængde RAM. Den gør også brug af registre, stakke og køer i CPU’en og operativsystemets hukommelsesplads.
  • Når to processer udfører multitasking, tildeler operativsystemet et bestemt antal CPU-udførelsescyklusser til det ene program.
  • Efter dette antal cyklusser laver operativsystemet kopier af alle de registre, stakke og køer, der anvendes af processerne, og noterer det punkt, hvor processen holdt pause i sin udførelse.
  • Det indlæser derefter alle de registre, stakke og køer, der anvendes af den anden proces, og giver den et vist antal CPU-cyklusser.
  • Når disse er afsluttet, laver den kopier af alle de registre, stakke og køer, der anvendes af det andet program, og indlæser det første program.

Alle de oplysninger, der er nødvendige for at holde styr på en proces, når der skiftes, opbevares i en datapakke kaldet en processtyringsblok. Processtyringsblokken indeholder typisk:

  • Et ID-nummer, der identificerer processen
  • Pejdere til de steder i programmet og dets data, hvor behandlingen sidst fandt sted
  • Registerindhold
  • Status for forskellige flag og switches
  • Pejdere til den øverste og nedre grænser for den hukommelse, der er nødvendig for processen
  • En liste over filer, der er åbnet af processen
  • Processens prioritet
  • Status for alle I/O-enheder, der er nødvendige for processen

Når processens status ændres, fra f.eks. fra afventende til aktiv eller fra suspenderet til kørende, skal oplysningerne i proceskontrolblokken bruges ligesom dataene i ethvert andet program til at styre udførelsen af den del af operativsystemet, der skifter opgaver.

Denne procesbytning sker uden direkte brugerindblanding, og hver proces får nok CPU-cyklusser til at udføre sin opgave inden for en rimelig tid. Der kan dog opstå problemer, hvis brugeren forsøger at få for mange processer til at fungere på samme tid. Selve operativsystemet kræver nogle CPU-cyklusser til at foretage lagring og udskiftning af alle register, køer og stakke for applikationsprocesserne. Hvis der startes tilstrækkeligt mange processer, og hvis operativsystemet ikke er omhyggeligt designet, kan systemet begynde at bruge langt størstedelen af de tilgængelige CPU-cyklusser til at bytte mellem processer i stedet for at køre processer. Når dette sker, kaldes det thrashing, og det kræver normalt en eller anden form for direkte brugerindgreb for at stoppe processerne og bringe orden i systemet igen.

En måde, hvorpå designere af operativsystemer reducerer risikoen for thrashing, er ved at reducere behovet for nye processer til at udføre forskellige opgaver. Nogle operativsystemer giver mulighed for en “process-lite”, kaldet en tråd, som kan klare alt det CPU-intensive arbejde, der udføres af en normal proces, men som generelt ikke tager sig af de forskellige typer I/O og ikke opretter strukturer, der kræver den omfattende proceskontrolblok, som en almindelig proces har. En proces kan starte mange tråde eller andre processer, men en tråd kan ikke starte en proces.

Så langt har al den planlægning, vi har diskuteret, vedrørt en enkelt CPU. I et system med to eller flere CPU’er skal operativsystemet fordele arbejdsbyrden mellem CPU’erne og forsøge at afbalancere kravene fra de nødvendige processer med de tilgængelige cyklusser på de forskellige CPU’er. Asymmetriske styresystemer bruger én CPU til deres egne behov og fordeler applikationsprocesserne på de resterende CPU’er. Symmetriske styresystemer fordeler sig selv på de forskellige CPU’er og afbalancerer efterspørgslen i forhold til CPU-tilgængeligheden, selv når styresystemet selv er det eneste, der kører.

Selv om styresystemet er den eneste software med eksekveringsbehov, er CPU’en ikke den eneste ressource, der skal planlægges. Hukommelsesstyring er det næste afgørende skridt for at sikre, at alle processer kører gnidningsløst.

Hukommelses- og lagerstyring
Når et styresystem styrer computerens hukommelse, er der to overordnede opgaver, der skal løses:

  • Hver proces skal have tilstrækkelig hukommelse til at udføre sine opgaver, og den må hverken køre ind i en anden process’ hukommelsesplads eller blive kørt ind af en anden proces.
  • De forskellige typer hukommelse i systemet skal udnyttes korrekt, så hver proces kan køre mest effektivt.

Den første opgave kræver, at operativsystemet opstiller hukommelsesgrænser for typer af software og for de enkelte programmer.

Som et eksempel kan vi se på et tænkt system med 1 megabyte (1.000 kilobyte) RAM. Under opstartsprocessen er operativsystemet på vores imaginære computer designet til at gå til toppen af den tilgængelige hukommelse og derefter “bakke” langt nok op til at opfylde operativsystemets egne behov. Lad os sige, at operativsystemet har brug for 300 kilobyte for at kunne køre. Nu går operativsystemet til bunden af RAM-puljen og begynder at bygge op med de forskellige driverprogrammer, der er nødvendige for at styre computerens hardwaresubsystemer. I vores imaginære computer optager driverne 200 kilobyte. Så efter at operativsystemet er blevet fuldt indlæst, er der 500 kilobyte tilbage til applikationsprocesser.

Når programmer begynder at blive indlæst i hukommelsen, indlæses de i blokstørrelser, der bestemmes af operativsystemet. Hvis blokstørrelsen er 2 kilobyte, får hver proces, der indlæses, en del af hukommelsen, der er et multiplum af 2 kilobyte i størrelse. Programmerne indlæses i disse faste blokstørrelser, hvor blokkene starter og slutter på grænser, der er fastlagt ved ord på 4 eller 8 bytes. Disse blokke og grænser er med til at sikre, at programmerne ikke bliver indlæst oven på hinandens plads med en eller to dårligt beregnede bit. Når dette er sikret, er det større spørgsmål, hvad der skal ske, når programpladsen på 500 kilobyte er fyldt op.

I de fleste computere er det muligt at tilføje hukommelse ud over den oprindelige kapacitet. Du kan f.eks. udvide RAM fra 1 til 2 megabyte. Dette fungerer fint, men har en tendens til at være relativt dyrt. Det ignorerer også en grundlæggende kendsgerning ved databehandling – de fleste af de oplysninger, som et program gemmer i hukommelsen, bliver ikke brugt på et givet tidspunkt. En processor kan kun få adgang til hukommelsen ét sted ad gangen, så langt størstedelen af RAM er ubrugt på et hvilket som helst tidspunkt. Da diskplads er billig i forhold til RAM, kan man ved at flytte oplysninger fra RAM til harddisken i høj grad udvide RAM-pladsen uden omkostninger. Denne teknik kaldes virtuel hukommelsesstyring.

Disklageret er kun en af de hukommelsestyper, der skal forvaltes af operativsystemet, og det er den langsomste. Rangeret i rækkefølge efter hastighed er hukommelsestyperne i et computersystem følgende:

  • Højhastighedscache – Dette er hurtige, relativt små mængder hukommelse, som er tilgængelige for CPU’en via de hurtigste forbindelser. Cachecontrollere forudsiger, hvilke data CPU’en skal bruge næste gang, og trækker dem fra hovedhukommelsen over i højhastighedscachen for at fremskynde systemets ydeevne.
  • Hovedhukommelse – Dette er den RAM-hukommelse, som du ser målt i megabyte, når du køber en computer.
  • Sekundær hukommelse – Dette er oftest en slags roterende magnetisk lagring, der holder programmer og data tilgængelige til brug, og som fungerer som virtuel RAM under styring af operativsystemet.

Driftssystemet skal balancere de forskellige processers behov med tilgængeligheden af de forskellige typer hukommelse og flytte data i blokke (kaldet sider) mellem den tilgængelige hukommelse, efterhånden som processernes tidsplan dikterer det.

Enhedshåndtering
Stien mellem operativsystemet og stort set al hardware, der ikke sidder på computerens bundkort, går gennem et særligt program, der kaldes en driver. En stor del af driverens funktion er at være oversætter mellem de elektriske signaler fra hardwareundersystemerne og programmeringssprogene på højt niveau i operativsystemet og applikationsprogrammerne. Drivere tager data, som operativsystemet har defineret som en fil, og oversætter dem til strømme af bits, der placeres på bestemte steder på lagerenheder, eller en række laserimpulser i en printer.

Da der er så store forskelle i den hardware, der styres via drivere, er der også forskelle i den måde, driverprogrammerne fungerer på, men de fleste køres, når enheden er påkrævet, og fungerer stort set på samme måde som enhver anden proces. Operativsystemet vil ofte tildele højprioritetsblokke til drivere, så hardwareressourcen kan frigives og gøres klar til videre brug så hurtigt som muligt.

En af grundene til, at drivere er adskilt fra operativsystemet, er, at der kan tilføjes nye funktioner til driveren — og dermed til hardwareundersystemerne — uden at det kræver, at selve operativsystemet skal ændres, omkompileres og omdistribueres. Gennem udvikling af nye drivere til hardwareenheder – en udvikling, der ofte udføres eller betales af producenten af delsystemerne snarere end af udgiveren af styresystemet – kan input/output-mulighederne i det samlede system forbedres betydeligt.

Håndtering af input og output er i vid udstrækning et spørgsmål om håndtering af køer og buffere, særlige lagerfaciliteter, der tager en strøm af bits fra en enhed, f.eks. et tastatur eller en seriel port, opbevarer disse bits og frigiver dem til CPU’en med en hastighed, der er langsom nok til, at CPU’en kan klare det. Denne funktion er især vigtig, når en række processer er i gang og optager processortid. Operativsystemet vil instruere en buffer til at fortsætte med at modtage input fra enheden, men til at stoppe med at sende data til CPU’en, mens den proces, der bruger input, er suspenderet. Når den proces, der har brug for input, så bliver aktiv igen, vil operativsystemet beordre bufferen til at sende data. Denne proces gør det muligt for et tastatur eller et modem at håndtere eksterne brugere eller computere med en høj hastighed, selv om der er tidspunkter, hvor CPU’en ikke kan bruge input fra disse kilder.

Håndtering af alle computersystemets ressourcer er en stor del af styresystemets funktion og kan i tilfælde af realtidsstyresystemer være praktisk talt hele den nødvendige funktionalitet. For andre operativsystemer er det imidlertid en afgørende del af deres eksistensberettigelse at tilvejebringe en forholdsvis enkel og konsistent måde, hvorpå applikationer og mennesker kan udnytte hardwarens kraft.

Grænseflade til verden

Anvendelsesgrænseflade
Som drivere giver programmerne mulighed for at gøre brug af hardwaresubsystemer uden at skulle kende alle detaljerne i hardwarens drift, lader applikationsprogramgrænseflader (API’er) programprogrammører bruge funktioner i computeren og operativsystemet uden at skulle holde direkte styr på alle detaljerne i CPU’ens drift. Lad os se på eksemplet med at oprette en harddiskfil til opbevaring af data for at se, hvorfor dette kan være vigtigt.

En programmør, der skriver et program til at registrere data fra et videnskabeligt instrument, ønsker måske at give forskeren mulighed for at angive navnet på den oprettede fil. Operativsystemet kan levere en API-funktion ved navn MakeFile til at oprette filer. Når programmøren skriver programmet, vil han indsætte en linje, der ser sådan her ud:

    MakeFile

I dette eksempel fortæller instruktionen operativsystemet, at det skal oprette en fil, der giver mulighed for tilfældig adgang til sine data (1), har et navn, som brugeren har indtastet (%Name), og har en størrelse, der varierer afhængigt af, hvor mange data der er gemt i filen (2). Lad os nu se på, hvad operativsystemet gør for at omsætte instruktionen til handling.

  1. Driftssystemet sender en forespørgsel til diskdrevet for at få lokaliseringen af den første ledige lagerplads.
  2. Med disse oplysninger opretter operativsystemet en post i filsystemet, der viser filens begyndelses- og slutplacering, filens navn, filtype, om filen er blevet arkiveret, hvilke brugere der har tilladelse til at se på eller ændre filen, samt dato og klokkeslæt for filens oprettelse.
  3. Driftssystemet skriver oplysninger i begyndelsen af filen, der identificerer filen, opstiller den mulige adgangstype og indeholder andre oplysninger, der knytter filen til programmet.

    I alle disse oplysninger er forespørgslerne til diskdrevet og adresserne for filens begyndelses- og slutpunkt i formater, der i høj grad afhænger af diskdrevets fabrikant og model.

Da programmøren har skrevet sit program til at bruge API’en til disklagring, behøver hun ikke at holde sig ajour med instruktionskoderne, datatyperne og svarkoderne for alle mulige harddiske og bånddrev. Operativsystemet, der er forbundet med drivere til de forskellige hardwaresubsystemer, tager sig af de skiftende detaljer i hardwaren — programmøren skal blot skrive kode til API’en og stole på, at operativsystemet klarer resten.

API’er er blevet et af de mest omstridte områder inden for computerindustrien i de seneste år. Virksomhederne er klar over, at programmører, der bruger deres API, i sidste ende vil udmønte sig i muligheden for at kontrollere og tjene penge på en bestemt del af industrien. Dette er en af grundene til, at så mange virksomheder har været villige til at stille programmer som læsere eller viewere gratis til rådighed for offentligheden. De ved, at forbrugerne vil anmode om, at programmerne udnytter de gratis læsere, og applikationsfirmaerne vil være villige til at betale royalties for at lade deres software levere de funktioner, som forbrugerne har anmodet om.

Brugergrænseflade
Som API’et giver programmerne en ensartet måde at bruge computersystemets ressourcer på, giver en brugergrænseflade (UI) struktur til interaktionen mellem brugeren og computeren. I det sidste årti har næsten al udvikling inden for brugergrænseflader foregået inden for området grafisk brugergrænseflade (GUI), hvor to modeller, Apples Macintosh og Microsofts Windows, har fået størst opmærksomhed og har vundet størstedelen af markedsandelen. Der findes andre brugergrænseflader, nogle grafiske og andre ikke, til andre styresystemer.

Unix har f.eks. brugergrænseflader kaldet shells, der præsenterer en mere fleksibel og kraftfuld brugergrænseflade end den tekstbaserede standardgrænseflade i styresystemet. Programmer som Korn Shell og C Shell er tekstbaserede grænseflader, der tilføjer vigtige hjælpeprogrammer, men deres hovedformål er at gøre det lettere for brugeren at manipulere styresystemets funktioner. Der findes også grafiske brugergrænseflader, såsom X-Windows og Gnome, som gør Unix og Linux mere lig Windows- og Macintosh-computere set fra brugerens synspunkt.

Det er vigtigt at huske, at i alle disse eksempler er brugergrænsefladen et program eller et sæt af programmer, der ligger som et lag over selve styresystemet. Det samme gælder, med lidt forskellige mekanismer, for både Windows- og Macintosh-operativsystemer. De centrale funktioner i operativsystemet, dvs. forvaltningen af computersystemet, ligger i operativsystemets kerne. Displaymanageren er separat, selv om den kan være tæt knyttet til kernen nedenunder. Båndene mellem operativsystemets kerne og brugergrænsefladen, hjælpeprogrammer og anden software definerer mange af forskellene mellem operativsystemerne i dag og vil definere dem yderligere i fremtiden.

Fremtiden
Et af spørgsmålene vedrørende operativsystemernes fremtid drejer sig om, hvorvidt en bestemt filosofi for softwaredistribution kan skabe et operativsystem, der kan bruges af virksomheder og forbrugere i fællesskab.

Linux, det styresystem, der er skabt og distribueret i henhold til open source-principperne, kunne få en betydelig indflydelse på styresystemet generelt. De fleste styresystemer, drivere og hjælpeprogrammer er skrevet af kommercielle organisationer, som distribuerer eksekverbare versioner af deres software – versioner, der ikke kan studeres eller ændres. Open source kræver distribution af originalt kildemateriale, som kan studeres, ændres og bygges videre på, og hvor resultaterne igen kan distribueres frit.

Den fortsatte vækst af Internettet og udbredelsen af computere, der ikke er almindelige stationære eller bærbare computere, betyder, at operativsystemerne vil ændre sig for at holde trit med udviklingen, men de centrale forvaltnings- og grænsefladefunktioner vil fortsætte, selv om de udvikler sig.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.