Operativsystem

En engelsk versjon av Linux Mint 18 med skrivebordmiljøet «Cinnamon».

Et operativsystem (OS) er den grunnleggende programvaren på en datamaskin, og det som tildeler de forskjellige ressursene i datamaskinen til andre programmer. Én type ressurs er eksterne enheter, som en skriver. Operativsystemet passer for eksempel på at to programmer ikke samtidig sender informasjon til samme skriver, men at de legges i en venteliste før utskrivning. En annen type ressurs er interne enheter som minne og prosessorer. Dette er svært grunnleggende komponenter som operativsystemet også holder styr på.

Man kan betrakte programvare som å være én av to typer: applikasjonsprogramvare eller systemprogramvare. Applikasjonsprogramvare er slikt som tekstbehandlere, regneark og andre programmer som brukeren har direkte kontakt med. Av systemprogramvare er operativsystemet den viktigste. Det holder styr på systemressursene og gjør programmererens jobb enklere. Tilleggsenheter som er koblet til datamaskinen er ofte kompliserte å bruke. En harddisk, for eksempel, trenger detaljerte instruksjoner om å starte motoren sin, stoppe den, flytte på lesehodene og mye annet. Operativsystemet bruker harddisken ved å kommunisere på en standard måte med et driverprogram laget spesielt for enheten. Et annet program som ønsker å skrive noe til harddisken gir bare beskjed til operativsystemet om for eksempel «å skrive teksten 'kongle' til filen "kongle.txt" på katalogen c:\». Operativsystemet, i samarbeid med driverprogrammet, tar seg så av resten av oppgaven.

Operativsystemet er et program som alle andre i datamaskinen. Det er skrevet i et programmeringsspråk og følger vanlige regler for programmer. Forskjellen er at det er det første som lastes inn i minnet når maskinen startes, og det styrer «hverdagen» for alle programmer som lastes inn senere.

Vanlige operativsystem

Microsoft Windows er et av de mest brukte operativsystemene for personlige datamaskiner. Dets forløpere kom på begynnelsen av 1980-tallet med MS-DOS fra Microsoft og DR-DOS fra Digital Research. Forkortelsen DOS står for Disk Operating System.

Unix er blant de eldste operativsystemene som fortsatt er i bruk. Det frie operativsystemet Linux brukes også til personlige datamaskiner, men særlig tjenere, superdatamaskiner og forbrukerelektronikk. Linux er en avart av Unix. Blant andre Unix-varianter finner vi Berkeley Software Distribution (BSD).

IBM hadde en periode suksess med sitt OS/2, og Macintosh-maskiner bruker Mac OS (tidligere rett og slett kalt systemet). Nye Macer kjører imidlertid Mac OS X, som er BSD-basert.

Bakgrunn

Et moderne datasystem består av komponenter som prosessorer, hovedminne, klokker, inn- og utenheter, lagringsenheter med mer. Operativsystemet holder styr på komponentene og gir applikasjonsprogrammer tilgang til dem. På denne måten behøver ikke hver programmerer kjenne til detaljene ved å bruke de ofte komplekse enhetene, eller hvordan et program skal dele disse med andre programmer. Operativsystemet kan sees på som et lag som skiller applikasjonsprogramvaren fra den ofte mer komplekse maskinvaren.[1]

Forskjellige datamaskiner bruker forskjellige typer maskinvare. En applikasjon skrevet til en type datamaskin vil da ikke nødvendigvis kjøre på en annen. Imidlertid kan et operativsystem finnes til flere typer maskiner, noe som gjør at operativsystemet fungerer som en felles plattform utvikleren av en applikasjon kan benytte seg av, uten å tenke på de forskjellige typene maskinvare brukeren kan tenkes å ha.[2]

Kjente operativsystemer

Operativsystemer kan grupperes på flere måter. En av dem er etter bruksområde. Stormaskiner har operativsystemer som er tilpasset deres bruk, minimaskiner sitt og tjenere har sine operativsystemer. Felles for alle disse er at de ikke har interaksjon med brukeren som fokus. På skrivebord og i private hjem finner vi det som tidligere kaltes mikrodatamaskiner, senere kalt hjemmedatamaskin og så PC. Disse har egne operativsystemer, og fra sent på 1980-tallet ble Microsoft sine operativsystemer markedsledende der. Håndholdte enheter som PDAer og mobiltelefoner har operativsystemer som er spesielt tilpasset maskinvaren. En annen kategori OSer er sanntidsoperativsystemer. Disse siste tilbyr tjenester hvor de garanterer responstid. Eksempler er datamaskinen som kontrollerer tenning og drivstofftilførsel i en moderne bil.[3]

I tillegg til systemene nevnt i innledningen, som er de mest kjente, finnes det også flere alternative operativsystemer. Blant disse finner vi BeOS, som ikke lenger blir utviklet, men det er flere nye operativsystemer under utvikling som er kloner av eller inspirert av BeOS, et av disse er Haiku. Andre alternative operativsystemer under utvikling er Syllable og SkyOS.

Også samtidens store teknologiske nyhet mobiltelefonen bruker operativsystem. Tidligere var disse ganske primitive, men etter hvert som mobilene har blitt kraftigere og fått flere bruksområder har også mobiltelefonoperativsystemene også blitt mer utbygde. Dette er særlig noe som har kommet samtidig med fargeskjermen og kameramobilene. Eksempler på operativsystemer for mobil er: Symbian, Windows CE, Linux, Android, IOS

Historie

ENIAC, en datamaskin uten operativsystem
Utdypende artikkel: Operativsystemets historie

Verdens første datamaskin, Charles Babbage mekaniske «analytiske maskin» fra 1800-tallet, brukte ikke et operativsystem. Babbage brukte mesteparten av sitt liv og sin formue på å få denne til å virke, men uten større suksess, da datidens mekaniske elementer ikke hadde presisjonen som krevdes. Etter dette var det liten utvikling fram til rundt andre verdenskrig, hvor blant annet Howard Aiken, John von Neumann, J. Presper Eckert og William Mauchley i USA og Konrad Zuse i Tyskland lagde datamaskiner som fylte hele rom med titusenvis av vakuumrør. Disse datamaskinene ble utviklet, bygget, programmert og driftet av den samme gruppen mennesker, og hadde heller ikke noe operativsystem å snakke om. All programmering skjedde i maskinspråk, ofte ved å plugge inn ledninger i riktige hull. Så å si alle problemene disse maskinene løste besto av enkel aritmetikk, som for eksempel å lage store tabeller av sinus og cosinus.

1950-tallet ble transistoren oppfunnet, og bildet endret seg radikalt. Nå ble det forskjellige mennesker som sto for henholdsvis utvikling, bygging, programmering og drifting av datamaskinene, og programmer ble lagret på hullkort som de forskjellige utviklerne kunne ta med seg ned i datarommet og kjøre. Programmeringsspråk som Fortran dukket også opp. Siden mye tid gikk med til å bytte hullkort, behandle utskrifter og lignende, så man raskt at et bedre system trengtes. Dette ble batchjobben, hvor en stabel hullkort ble lest inn på magnetisk tape og kjørt etter som datamaskinen ble ledig. Ofte var det flere datamaskiner involvert, én som var god på å lese hullkort og skrive tape og én som var god på å kjøre aritmetikk (for eksempel henholdsvis IBM 1401 og IBM 7094).[4]

En typisk batchjobb under FMS

En typisk jobb er illustrert i figuren til høyre. Den besto av et input-kort, et kort med instruksjoner om hva som skulle lastes, en rekke kort som inneholdt programmet, et kort som fortalte datamaskinen at programmet som akkurat var kompilert skulle lastes i minnet, et kort som fortalte datamaskinen at programmet skulle kjøres, et sett kort med dataene som skulle brukes under kjøring og et kort som fortalte at stabelen med kort var slutt. Kontrollkortene kan sees på som en forgjenger til dagens skriptspråk og kommandotolker.[5]

Operativsystemer på denne typen inkluderte FMS (Fortran Monitor System) og IBSYS, IBM sitt operativsystem for 7094-modellen.[6]

På begynnelsen av 1960-tallet hadde de fleste produsenter to sett produkter; en datamaskinserie for bruk til vitenskapelig tallknusing og en datamaskinserie for bruk til lesing og sortering av data. Denne første typen ble brukt innenfor vitenskap og beregninger, og den andre ble brukt av banker og forsikringsselskaper. Det var dyrt å ha to separate produktserier, og IBM løste dette ved å introdusere System/360. Denne ble levert i et antall forskjellige konfigurasjoner etter kundens behov, og skulle i teorien kunne kjøre samme programvaren uavhengig av akkurat hvilken konfigurasjon den hadde. 360 var den første serien datamaskiner som brukte integrerte kretser, og hadde en stor fordel på ytelse i forhold til pris foran forrige generasjon datamaskiner, som var bygget opp av individuelle transistorer.[7]

Operativsystemet OS/360 var flere størrelsesordener større enn forgjengerne, men løste oppgavene sin tross problemene størrelsen frembrakte med tanke på antall feil og vedlikeholdet som krevdes. Dette systemet kan betraktes som en tredje generasjons operativsystem, og det brukte flere teknikker som manglet i andre generasjons produkter som FMS. Den viktigste av disse var multiprogrammering. På datamaskiner som IBMs 7094 måtte datamaskinen gå «på tomgang» hvis en jobb ventet på noen eksterne enheter. I tunge regneoperasjoner var dette relativt sjelden, mens brukere som banker som behandlet mye eksterne data opplevde at prosessoren sto ledig 80-90% av tiden. Dette var ikke holdbart, da det var svært kostbart å drifte disse maskinene. Løsningen var da at minnet ble delt i flere partisjoner, slik at man kunne ha flere jobber inne samtidig. Spesiell maskinvare ble utviklet til tredjegenerasjonssystemer slik at jobbene ikke laget krøll i de andres minneområder.[8]

En annen teknikk var spooling, som besto i av at man hentet inn jobbene på disk så snart hullkortene var brakt ned til datarommet. Dette medførte at en jobb kunne hentes inn i minnet så snart en annen jobb var ferdig. Dette eliminerte og mye bæring av tape fram og tilbake mellom lesemaskinen og regnemaskinen.[9]

En tidlig terminal, her en Televideo 925, med 4 kB RAM, 4 kB ROM og en RS-232-kobling til tjeneren. Nå ser man det som folk senere ville identifisert som en datamaskin, altså en boks som inneholder et tastatur og en skjerm.

Disse to framskrittene førte til et problem for programmererne, som tidligere hadde hatt datamaskinen for seg selv da de kjørte jobbene sine, noe som gjorde feilfinning mye enklere. Nå var det ofte et flere timer mellom da jobben ble sendt ned til datasenteret og når utskriften kom tilbake. Dette gjorde at man utviklet systemer med flere terminaler, hvor hver programmerer kunne gi kommandoer til datamaskinen etter forgodtbefinnende. Siden en programmerer som feilsøker i et program gir kommandoer som kan utføres fort, altså ikke av typen «sortér en million felter i databasen», så fungerte dette greit. Dette ble kalt timesharing.[10]

Etter dette forsøkte man å bygge enorme systemer hvor hundrevis av brukere hadde terminaler. Et eksempel er MULTICS (MULTIplexed Information and Computing Service), som skulle tilby datakraft til alle i Boston. Dette konseptet var vanskelig å sette ut i praksis, og medførte blant annet at General Electrics ga opp datamaskiner i det store og hele. MULTICS innførte dog en rekke ideer som ble brukt senere.[11]

En annen trend på tiden var stadig kraftigere og billigere minimaskiner som for eksempel DEC PDP-1 fra 1961. Disse ble brukt til all mulig slags databehandling som ikke krevde ekstrem «nummerknusing», og ble veldig utbredte. Et resultat av dette var at Ken Thompson, en av bidragsyterne på Bell Labs til MULTICS, fant en ubrukt PDP-7 og skrev en redusert enbrukersversjon av MULTICS. Dette arbeidet ble senere spiren til Unix.[12] Bruken av Unix tok av og spredde seg til alle typer maskiner. Etter hvert fordrev de alle de proprietære operativsystemene fra stormaskiner, med unntak av IBMs MVS og DECs OpenVMS. MVS overlevde på grunn av antall installerte maskiner som brukte det, og OpenVMS overlevde i bank- og finansverdenen på grunn av pålitelighet, sikkerhet og bevaring av data.[13]

Etter hvert som integrerte kretser ble tatt i bruk i stor skala kom den personlige datamaskinen på markedet. Arkitekturen på personlige datamaskiner var ikke ulik minimaskiner, men prisen var mye lavere. En annen forskjell var at de var beregnet på brukere uten solide datakunnskaper, og sånn sett måtte være brukervennlige.[14]

Apple Macintosh 128k

Tidlig på 1980-tallet kom Commodore og Apple med OSer med et til dels grafisk brukergrensesnitt, henholdsvis for Commodore PET og Apple II. Digital Research kom med CP/M, et enkelt operativsystem for forretningsbruk – men dette kunne også brukes på flere produsenters datamaskiner. Etter hvert som teknologien modnet så Commodore med sin Amiga, Atari med sin GEM og Apple med sine Lisa og Macintosh, og alle disse hadde fullt utbygde grafiske brukergrensesnitt. Det som i dag er programvaregiganten Microsoft kom etter hvert med MS-DOS, sterkt influert av CP/M, og Windows, sterkt influert av Macintosh. De forskjellige konkurrentene kom etter hvert i finansielle problemer, og Microsoft dominerer i dag markedet for personlige datamaskiner.[15]

Midt på 1980-tallet kom de første datanettverkene og distribuerte operativsystemene. Dette førte til at operativsystemene måtte være klar over at nettverkene og andre datamaskiner fantes, og tillate brukerne å logge inn på andre maskiner for å for eksempel flytte filer. Et distribuert operativsystem synes ikke for brukeren; det lar ham bruke en datamaskin med flere prosessorer som om det skulle være én enkelt prosessor i en tradisjonell arkitektur. Dette siste konseptet er det mest kompliserte av de to, og krever nye paradigmer, ikke bare noen kodelinjer ekstra.[16]

GNU-prosjektet ble startet av aktivist og programmerer Richard Stallman og hadde som mål å skape et komplett og fritt alternativ til det proprietære UNIX-operativsystemet. Mens prosjektet var svært vellykket i å kopiere funksjonaliteten til ulike deler av UNIX, viste utviklingen av GNU Hurd-kjernen seg å være uproduktiv. I 1991 lanserte den finske informatikkstudenten Linus Torvalds, i samarbeid med frivillige som samarbeider over Internett, den første versjonen av Linux-kjernen. Den ble snart slått sammen med user space-komponentene og systemprogramvaren til GNU for å danne et komplett operativsystem. Siden da har kombinasjonen av de to viktigste komponentene vanligvis blitt referert til som bare "Linux" av programvareindustrien, en navnekonvensjon som Stallman og Free Software Foundation fortsatt er motstandere av, de foretrekker navnet GNU/Linux. The Berkeley Software Distribution, kjent som BSD, er et UNIX-derivat distribuert av University of California, Berkeley, som startet i 1970. Det er fritt distribuert og portert til mange minidatamaskiner, og har etterhvert også fått en fanskare for bruk på PC, i hovedsak som FreeBSD, NetBSD og OpenBSD.

Tidslinje

i5 /OSi5/OSSyllableOpenVMSOpenVMSeComStationOS/2 WarpOpenVMSOS/2 WarpOpenVMSOpenVMSBeOSVMSOS/2AmigaOSXerox StarOpenVMSCP/MDEC StarletMulticsLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxOpenBSDFreeBSDDragonFly BSDFreeBSDOpenBSDFreeBSDBSDBSDOpenBSDNetBSDFreeBSDBSDBSDBSDBSDBSDBSDBSDBSDBSDBSDBSDBSDBSDAIXSolaris (operativsystem)UNIXMinixSolaris (operativsystem)AIXUNIXUNIXUnix System VOPENSTEPMachUNIXAIXIrixUltrixGNU/HurdSolaris (operativsystem)NeXTSTEPHP-UXMinixPlan 9UNIXQNXUnix System VSunOSUnix System IIIUNIXEuniceUNIXUNIXUNIXUNIXUNIXUNICSMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OSDarwin (operativsystem)Mac OSMac SystemMac SystemLisa OSApple DOSWindows 11Windows 10Windows 7Windows VistaWindows XP#Service Pack 2Windows 2003Windows XPWindows MEWindows 2000Windows 98Windows NTWindows 95Windows NTWindows NTWindowsWindowsWindowsFreeDOSMS-DOSPC-DOSMS-DOSDR DOSConcurrent DOSMS-DOSMS-DOSBSD

Merk at tabellen mangler de fleste operativsystemer for stormaskiner, for eksempel ICL George, IBM MFT, IBM MVS, IBM VM, Univac, Tandem, og minidatamaskiner som Digital PDP, etc. Flere av disse har nå mest historisk betydning, da moderne trender er å kjøre Unix/Linux på stor- och superdatamaskiner.

Oppbygging

Oversikt over lagene i et datasystem[17]

Oppbyggingen av et typisk datasystem vises i figuren til høyre. Underst er den fysiske maskinvaren. Den består av kretser, kabler, strømforsyning og lignende fysiske innretninger. Over denne ligger det første, enkle programvarelaget, kalt et mikroprogram. Denne ligger som oftest i minne som bare kan leses. Mikroprogrammet er en liten tolk, som henter inn maskinkodeinstruksjonene og sender de til prosessoren. For eksempel bestemmer mikroprogrammet hvordan to tall skal legges sammen, ved å hente en ADD-instruksjon, hente de to tallene fra sine plasser i minnet, legger de sammen og lagrer resultatet et sted i minnet.[18]

Maskinspråket består som regel av mellom 50 og 300 forskjellige instruksjoner, hvor de fleste brukes til å flytte rundt på tall, gjøre enkel aritmetikk og sammenligne tall. Som et eksempel kan man styre en ekstern enhet som en disk ved å flytte inn verdier i forskjellige register, bestemte lokasjoner i minnet. Man putter kanskje inn verdier for adressen på disken, adressen i hovedminnet dataene skal flyttes til, antall bytes som skal flyttes og retningen disken skal leses. I praksis kreves enda flere parameter, og for mange eksterne enheter spiller også timingen en viktig rolle.[19]

En viktig oppgave for operativsystemet er å skjule alle denne kompleksiteten. For eksempel så er kommandoen LES DATABLOKK FRA DISK enklere å forholde seg til enn å sysle med posisjonen til lesehodet, ventetid før lesehodet er på plass og lignende.[20]

Oppå operativsystemet ligger resten av systemprogramvaren. Her er kompilatorer, kommandolinjen, teksteditorier og lignende. Disse programmene er ikke en del av operativsystemet, selv om de ofte behandles som det i hverdagen. Operativsystemet er den delen av systemprogrammene som kjøres i kjernemodus eller supervisor mode, altså en tilstand hvor den har tilgang til alt fysisk i datasystemet. Kompilatorer og lignende kjører i brukermodus, altså hvor operativsystemet styrer tilgangen på ressurser.[21]

På toppen ligger applikasjonsprogramvaren. Denne er til for at brukeren av systemet skal kunne løse sine problemer, om det er snakk om tekstbehandling, regneark eller høre på musikk.

Hva som betraktes som en del av operativsystemet og hva som er applikasjonsprogramvare forandrer seg over tid. Tidlige operativsystemer var lite annet enn en samling rutiner som håndterte de forskjellige maskinvareenhetene. Etterhvert som forskjellige applikasjoner fikk forskjellige måter å behandle ting som filhåndtering, ble disse standardiserte og ble en del av operativsystemet. Microsoft Windows begynte som et skall som lå over operativsystemet MS-DOS (noe som gjorde Windows til en applikasjon), senere var det Windows som faktisk ble selve operativsystemet etter å ha svelget MS-DOS et sted på veien. På samme måte begynte nettlesere som applikasjoner, mens det i dag er en uklar linje mellom nettleseren og systemet i mange operativsystemer.[22]

Konsepter innenfor operativsystemer

Grunnleggende konsepter

Et grunnleggende konsept innenfor alle operativsystemer er prosessen. En prosess er i utgangspunktet et program som kjører. Den har sin kjørbare kode, sine data og stakk, sin programteller og andre registre og all annen informasjon den trenger for å kjøre. Operativsystemet sysler med å styre prosessene, først og fremst ved å skape og terminere dem. Noen ganger kan en prosess lage andre prosesser, kalt barn. Prosessene kommuniserer med hverandre med signaler. En prosess som venter på at noe skal skje, for eksempel at en skriver skal gjøre jobben sin, kan gå i dvale og ble vekt opp igjen av operativsystemet når maskinvaren mottar et avbruddssignal. I et flerbrukerssystem har hver bruker et eierforhold til sine egne prosesser, noe som kan være med på å styre hva slags signaler prosessene i systemet kan sende til hverandre.[23]

Et annet grunnleggende konsept er filer. Åpning og lukking, sletting og skriving av filer styres av OSet. De fleste operativsystemer i dag støtter kataloger for å gruppere filer sammen. Både prosessene og filene er gruppert hierarkisk, men mens filene har lang levetid (dager, måneder og år), så blir prosesser ofte skapt og destruert innenfor sekunder. Hver prosess har sitt eget arbeidsområde, altså den katalogen prosessen i utgangspunktet ser etter filer som ikke har et fullstendig filnavn i. OSet holder også rede på tilstanden til filene i tillegg til selve innholdet og plasseringen. For eksempel har filer i Unix et sett med boolske tilstander kalt RWX, hvor R er rett til å lese filen, W er rett til å skrive til filen og X er rett til å kjøre filen (altså om den anses som et program). For kataloger betyr X rett til å liste opp innhold. Filer eies av en eier og en gruppe, og det er et sett med RWX-tilstander for eieren, gruppen, andre enn disse, samt et sett som angir eventuelle spesialegenskaper. Slik sikres forskjellige brukere og deres prosesser fra å tråkke hverandre på tærne. Ofte er eksterne enheter også representert som filer, for å gjøre jobben til programmererne lettere. To typer slike filer finnes, med blokkskriving og tegnskriving. Blokkskriving brukes til å modellere enheter hvor man kan bevege seg fram og tilbake og lese og skrive vilkårlig, slik som en harddisk. Tegnskriving innebærer at man må lese og skrive i en bestemt rekkefølge, slik som til en skriver. Den siste spesialfilen er en pipe (engelsk for rør). Denne kobler sammen to prosesser, slik at mens én prosess skriver til pipen som om det var en fil, leser en annen prosess fra den, også som om det var en fil.[24]

Brukernes programmer kommuniserer med operativsystem og ber om tjenester ved hjelp av systemkall. For programmereren ser dette ut som vanlige prosedyrekall, mens operativsystemet kjører sine grunnleggende funksjoner på bakgrunn av kallet. Eksempler er skaping av prosesser, allokering av minne og behandling av eksterne enheter.[25]

Interaksjon med brukeren

Brukeren av en datamaskin kommuniserer typisk med maskinen gjennom brukergrensesnittet til en applikasjon. Men før applikasjonen kan kjøre, må brukeren kunne starte den. Brukeren må dessuten kanskje logge seg inn på systemet før han får kjørt noen programmer. Derfor må også brukeren kunne gi kommandoer direkte til operativsystemet.

Operativsystemets brukergrensesnitt tar seg av interaksjon med brukeren. Det er to hovedmåter å gjøre dette på, enten ved hjelp av tekstkommandoer til et systems skall, eller ved hjelp av et grafisk brukergrensesnitt (GUI). Grafiske brukergrensesnitt krever lite brukeropplæring og er relativt enkelt å lære, men bruker mer systemressurser enn kommandoer til et skall.[26]

Historisk og strengt teknisk hører ikke brukergrensesnittet til operativsystemet, men bruker operativsystemet i stor grad og nevnes ofte sammen med operativsystemet når det omtales.[27] Flere moderne operativsystem i unix-familien, slik som Linux og Solaris, kan i dag leveres med helt forskjellige grafiske grensesnitt – både X11-baserte og andre.


Gjennom en kommandolinje gir brukeren kommandoer gjennom konsise og tildels kryptiske kommandoer

Arkitektur

Med arkitektur menes den overliggende strukturen på hvordan operativsystemet er bygget. Et lite antall arkitekturer dominerer fagfeltet. I 2006 bruker Linux og Windows en monolittisk kjerne, mens Mac OS X er basert på Mach og bruker en mikrokjerne.

Monolittiske systemer

En enkel struktur for et monolittisk system

Den mest vanlige arkitekturen er et monolittisk system. Her er det ingen bestemt struktur, da all funksjonaliteten til operativsystemet ligger i ett enkelt program. For å lage det faktisk kjørbare operativsystemet, blir alle individuelle filer med kildekode kompilert sammen og lenket sammen til én enkelt kjørbar fil. Grensesnittet til operativsystemet er da skrevet som et antall prosedyrer, og applikasjonsprogramvaren kaller prosedyrene. Når operativsystemet kalles, skiftes kjøremåten til datamaskinen fra brukermodus, hvor programvaren har en rekke begrensninger, til kjernemodus, hvor operativsystemet har tilgang på alle instruksjoner og eksterne enheter.[28]

Monolittiske systemer har som regel delt inn prosedyrene i flere typer eller lag. Man har hovedprosedyren, som kaller de forskjellige tjenestene. Tjenestene består av prosedyrer som utfører systemkall. Tjenestene benytter seg av forskjellige hjelpefunksjoner, som inneholder funksjonalitet som benyttes av flere tjenester.[29]

Fordelen med monolittiske systemer er at ytelsen blir noe bedre. Ulempene inkluderer at de tar større plass. Moderne monolittiske kjerner som Linux, FreeBSD og Solaris kan laste komponenter inn i minnet mens operativsystemet kjører, noe som reduserer størrelseskravet. Eldre eksempler på monolittiske kjerner er MS-DOS og Mac OS fram til versjon 8.6. Et eksempel på et OS til undervisningsbruk som nytter en monolittisk kjerne er Agnix.

Hierarkiske systemer

5 Brukeren
4 Brukerprogrammer
3 Input-/output-styring
2 Kommunikasjon brukerprosess
1 Styring minne og fast lager
0 Prosessorallokering og multiprogrammering

En generalisering av lagdelingen innebærer å lage et hierarki. I en lagdelt arkitektur gjøres dette formelt, og hvert lag bygger på laget under det. Den første lagdelte strukturen kom fra operativsystemet THE, utviklet av Edsger Dijkstra og studentene hans på slutten av 1960-tallet. Systemet hadde seks lag, som vist i tabellen til høyre.[30]

Der hvor THE brukte lagdeling som en hjelp i utviklingen (alt ble uansett lenket sammen til én kjørbar fil), brukte MULTICS et system med ringer, hvor utenpåliggende ringer hadde mindre rettigheter enn innenforliggende, og denne strukturen var støttes av den underliggende maskinvaren.[31]

Klient-tjener-systemer

En tredje arkitektur kalles klient-tjener eller mikrokjerne. Den tar lagdelingen et skritt videre. Her er så mye som mulig av funksjonaliteten flyttet fra operativsystemet, og det gjenværende kalles kjernen. Man implementerer her mye av funksjonaliteten i brukerprosesser. En applikasjon (klienten) som trenger å bruke en tjeneste, for eksempel for å lese en fil, sender en forespørsel til tjenerprosessen, som gjør arbeidet og sender tilbake et svar. Alt kjernen ideelt sett gjør er å håndtere kommunikasjon mellom klienter og tjenere. På denne måten blir kjernen liten og håndterbar.[32]

En fordel med klient-tjener-modellen er at en feil i en komponent kan forårsake et krasj av den tjenesten, men det vil vanligvis ikke føre til at hele maskinen stanser. En annen fordel er at klient-tjener-modellen kan lettere tilpasses bruk i distribuerte systemer.[33]

Et kall til operativsystemet i klient-tjener-modellen

Eksempler på moderne mikrokjerne-systemer inkluderer QNX, Mach og senere Mac OS X. Et eksempel på et OS for undervisningsformål som har en mikrokjerne er Amoeba.

Mangfoldet av operativsystemer og kompatibilitet

Programvare er generelt skrevet for bruk på et bestemt operativsystem, og noen ganger også for bestemt maskinvare. Når programmet porteres til å kjøre på et annen operativsystem kan funksjonaliteten programmet krever bli implementert annerledes av det andre systemet (navn på funksjoner, betydningen av argumenter osv.) Dette krever at programmet må tilpasses, endres eller annen måte opprettholdes.

Kostnaden det innebærer å sørge for støtte i flere operativsystemer kan unngås ved i stedet å skrive programmer mot en programvareplattform som for eksempel Java, eller Qt for nettlesere. Disse abstraksjonene har allerede båret kostnadene ved tilpasning til bestemte operativsystemer og deres systembibliotek.

Drivere

Drivere er formidlere mellom operativsystemet og maskinvareenheter som brukes til å sende og motta data mellom dem.[34]

Se også

Referanser

  1. ^ Tanenbaum s. 1
  2. ^ Davis s. 3
  3. ^ osdata: Kinds of operating systems (lest 25. juli 12:30)
  4. ^ Tanenbaum s. 6
  5. ^ Tanenbaum s. 6-7
  6. ^ Tanenbaum s. 7
  7. ^ Tanenbaum s. 8
  8. ^ Tanenbaum s. 9-10
  9. ^ Tanenbaum s. 9
  10. ^ Tanenbaum s. 10
  11. ^ Tanenbaum s. 10
  12. ^ Tanenbaum s. 10
  13. ^ osdata: Kinds of operating systems (lest 25. juli 12:30)
  14. ^ Tanenbaum s. 11
  15. ^ osdata: Kinds of operating systems (lest 25. juli 12:30)
  16. ^ Tanenbaum s. 11-12
  17. ^ Tanenbaum s. xx
  18. ^ Tanenbaum s. 1-2
  19. ^ Tanenbaum s. 2
  20. ^ Tanenbaum s. 2
  21. ^ Tanenbaum s. 2-3
  22. ^ Davis s. 8
  23. ^ Tanenbaum s. 12-14
  24. ^ Tanenbaum s. 14-16
  25. ^ Tanenbaum s. 16-17
  26. ^ Davis s. 95-97
  27. ^ Tanenbaum s. 17-18
  28. ^ Tanenbaum s. 19-20
  29. ^ Tanenbaum s. 20
  30. ^ Tanenbaum s. 20-21
  31. ^ Tanenbaum s. 21
  32. ^ Tanenbaum s. 23
  33. ^ Tanenbaum s. 23
  34. ^ «Programvarekomponenter som brukes av enheter for å samhandle med operativsystemet.» (på russisk). 

Litteratur

Eksterne lenker

Teknisk

Historisk

Read other articles:

Djamil Suherman (24 April 1924 – 30 November 1985) adalah sastrawan Indonesia. Karya-karyanya berupa puisi, novel dan cerita pendek: Muara (bersama Kaswanda Saleh, (1958) Manifestasi (1963) Perjalanan ke Akhirat (1963; memenangkan hadiah kedua Majalah Sastra 1962) Umi Kulsum (1983) Nafiri (1983) Pejuang-pejuang Kali Pepe (1984) Sarip Tambakoso (1985) Sakerah (1985). Artikel bertopik biografi Indonesia ini adalah sebuah rintisan. Anda dapat membantu Wikipedia dengan mengembangk...

 

Aleksandr Vasilyevich SuvorovLahir(1730-11-24)24 November 1730Moskwa, Kekaisaran RusiaMeninggal18 Mei 1800(1800-05-18) (umur 69)Sankt-Peterburg, Kekaisaran RusiaDikebumikanAlexander Nevsky LavraPengabdian Kekaisaran Rusia Kekaisaran Romawi SuciDinas/cabangTentara Kekaisaran RusiaLama dinas1746–1800PangkatGeneralissimoPerang/pertempuranPerang Tujuh Tahun Pertempuran Kunersdorf Pengepungan Kolberg Perang dengan Konfederasi Bar Perang Rusia-Turki Pertama Perang Rusia-Turki ...

 

1928 film Trooper O'BrienPoster of filmDirected byJohn GavinWritten byAgnes GavinProduced byHerbert FinlayStarringJohn GavinCinematographyArthur HigginsEdited byJohn McGeorgeProductioncompanyAustralian Artists CompanyDistributed byHerbert FinlayRelease date23 May 1928 (Sydney)Running time77 minutes (5,500 feet)CountryAustraliaLanguagesSilentEnglish intertitlesBudget£1,000[1] Trooper O'Brien is a 1928 Australian silent film from the team of John and Agnes Gavin. It was a melodrama set...

Assembly of Bishops in Synod in October 2023 Official logo of the synod, English-speaking version The 16th Ordinary General Assembly of the Synod of Bishops, commonly referred to as the synod on synodality,[1] is an ongoing synod of bishops of the Catholic Church which will conclude in October 2024 and has as its theme For a synodal Church: communion, participation and mission.[2] It has been described as the culmination of Pope Francis's papacy and the most important event in...

 

Artikel ini bukan mengenai Pos ronda. Koordinat: 36°44′46″N 5°9′40″W / 36.74611°N 5.16111°W / 36.74611; -5.16111 RondaKotamadyaEl Tajo Ronda dan Jembatan Baru Ronda BenderaLambang kebesaranNegara SpanyolKomunitas otonom AndalusiaProvinsiMálagaComarcaSerranía de RondaPemerintahan • AlcaldeAntonio María Marín Lara (PSOE)Luas • Total481,31 km2 (18,583 sq mi)Ketinggian723 m (2,372 ft)Populasi (...

 

B

  此條目介紹的是拉丁字母中的第2个字母。关于其他用法,请见「B (消歧义)」。   提示:此条目页的主题不是希腊字母Β、西里尔字母В、Б、Ъ、Ь或德语字母ẞ、ß。 BB b(见下)用法書寫系統拉丁字母英文字母ISO基本拉丁字母(英语:ISO basic Latin alphabet)类型全音素文字相关所属語言拉丁语读音方法 [b][p][ɓ](适应变体)Unicode编码U+0042, U+0062字母顺位2数值 2歷史發...

British political scientist and historian (1943–2019) For other people named Ken Young or Kenneth Young, see Kenneth Young (disambiguation). Kenneth George Young FAcSS FRHistS (3 January 1943 – 20 February 2019)[1][2][3] was a British political scientist and historian who was Professor of Public Policy at King's College London in its Department of War Studies.[4] Earlier he was instrumental in the creation of the Department of Political Economy at KCL in 20...

 

French racing driver (1885–1965) Jules GouxGoux in 1921BornJules Eugène Goux(1885-04-06)6 April 1885Valentigney, Doubs, FranceDied6 March 1965(1965-03-06) (aged 79)Mirmande, Drôme, FranceChampionship titlesMajor victories Indianapolis 500 (1913)Champ Car career5 races run over 5 yearsFirst race1913 Indianapolis 500 (Indianapolis)Last race1922 Indianapolis 500 (Indianapolis)First win1913 Indianapolis 500 (Indianapolis) Wins Podiums Poles 1 2 0 Jules Eugène Goux (6 April 1885 – 6 Ma...

 

此条目序言章节没有充分总结全文内容要点。 (2019年3月21日)请考虑扩充序言,清晰概述条目所有重點。请在条目的讨论页讨论此问题。 哈萨克斯坦總統哈薩克總統旗現任Қасым-Жомарт Кемелұлы Тоқаев卡瑟姆若马尔特·托卡耶夫自2019年3月20日在任任期7年首任努尔苏丹·纳扎尔巴耶夫设立1990年4月24日(哈薩克蘇維埃社會主義共和國總統) 哈萨克斯坦 哈萨克斯坦政府...

Part of the American Civil War in Virginia For other uses, see Bermuda (disambiguation). Federal earthworks at Bermuda Hundred vteBermuda Hundred Campaign Port Walthall Junction Swift Creek Chester Station Proctor's Creek Ware Bottom Church The Bermuda Hundred campaign was a series of battles fought at the town of Bermuda Hundred, outside Richmond, Virginia, during May 1864 in the American Civil War. Union Maj. Gen. Benjamin Butler, commanding the Army of the James, threatened Richmond from t...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: 2011–12 Nevada Wolf Pack men's basketball team – news · newspapers · books · scholar · JSTOR (February 2024) (Learn how and when to remove this message) American college basketball season 2011–12 Nevada Wolf Pack men's basketballWAC Regular Season Champions...

 

Broad-brimmed flat felt hat of Ancient Macedonian origin Two 4th and 3rd century BC terracotta statues from Athens depicting Ancient Greeks wearing the kausia. The kausia or causia (Ancient Greek: καυσία[1]) was an ancient Macedonian flat hat. A purple kausia was worn by the Macedonian kings as part of the royal costume.[2] Name The name is derived from its keeping off the heat (καῦσις).[2] Background It was worn during the Hellenistic period but perhaps e...

Canadian company Kepler Communications, Inc.Company typePrivateIndustryTelecommunicationsFounded2015FoundersMina Mitry, Wen Cheng Chong, Mark Michael, Jeffrey Osborne[citation needed]HeadquartersToronto, Ontario, CanadaWebsitekepler.space Kepler Communications Inc. is an international satellite telecommunications company based in Toronto, Ontario, Canada, with presence in the UK and the USA.[1] The company's stated mission is to create the internet for space and allow-in-space...

 

2013 UK local government election 2013 Kent County Council election ← 2009 2 May 2013 2017 → All 84 seats to Kent County Council43 seats needed for a majority   First party Second party   Party Conservative UKIP Seats won 44 17 Seat change 27 16   Third party Fourth party   Party Labour Liberal Democrats Seats won 13 7 Seat change 10 0 Map showing the results of the 2013 Kent County Council elections. Council control before electio...

 

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (ديسمبر 2018) منتخب ليبيا لكرة القدم الخماسية بلد الرياضة  ليبيا الطاقم واللاعبون المدرب ماتو ستكوفيتش مشاركات تعد...

Este artigo ou secção necessita de referências de fontes secundárias confiáveis e independentes. Fontes primárias, ou com conflitos de interesse, não são adequadas para verbetes enciclopédicos. Ajude a incluir referências.—Encontre fontes: ABW  • CAPES  • Google (N • L • A) (Novembro de 2020) Tribunal Regional Eleitoral do Piauí (TRE-PI) Tribunal Regional Eleitoral do Piauí Organização Sede Teresina, PI Brasil ...

 

Island in Estonia This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Hara Island – news · newspapers · books · scholar · JSTOR (December 2009) (Learn how and when to remove this message) Hara IslandNative name: Hara saarGeographyLocationBaltic SeaCoordinates59°35′04″N 25°37′30″E / 59.58444°N 25.62500°...

 

Primera División Uruguaya 1962 Competizione Primera División Uruguaya Sport Calcio Edizione 59ª Organizzatore AUF Luogo  Uruguay Partecipanti 10 Formula 1 girone all'italiana Risultati Vincitore  Peñarol(25º titolo) Statistiche Miglior marcatore Alberto Spencer(16) Incontri disputati 90 Gol segnati 289 (3,21 per incontro) Cronologia della competizione 1961 1963 Manuale Il campionato era formato da dieci squadre e il Peñarol vinse il titolo. Classifica finale Pos. Sq...

ゼッドZedd 2014年基本情報出生名 Антон Заславский生誕 (1989-09-02) 1989年9月2日(35歳) ロシア・ソビエト連邦社会主義共和国 サラトフ出身地 ドイツ カイザースラウテルンジャンル ポップ、ダンス・ポップ、EDM、ハウス、エレクトロ・ハウス、コンプレクストロ、プログレッシブ・ハウス職業 DJ音楽プロデューサーソングライター担当楽器 シンセサイザー、ドラム...

 

У Вікіпедії є статті про інші значення цього терміна: Галицький район (значення). Галицький район Герб Львова Основні дані Країна:  УкраїнаМісто:  ЛьвівУтворений: 5 квітня 1951Населення: 58 812Географічні координати: 49°50′16″ пн. ш. 24°01′43″ сх. д. / 49.8379139°&...