operativ system

Från Wikipedia, den fria encyklopedin
Hoppa till navigation Hoppa till sökning
Förhållandet mellan operativsystemet, hårdvaran, programvaran och användaren
PC -operativsystems marknadsandelar i Tyskland [1]

Ett operativsystem , även kallat OS (från engelska operativsystemet ), är en sammanställning av datorprogram som hanterar en dators systemresurser, t.ex. huvudminne , hårddiskar , in- och utdataenheter och gör dessa program tillgängliga. Operativsystemet bildar således gränssnittet mellan hårdvarukomponenterna och användarens applikationsprogram. [2] Operativsystem består vanligtvis av en kärna som hanterar datorns hårdvara, samt specialprogram som tar på sig olika uppgifter vid start. Dessa uppgifter inkluderar att ladda enhetsdrivrutiner . Operativsystem finns i nästan alla typer av datorer: Som realtidsoperativsystemprocessdatorer och inbyggda system , på persondatorer , surfplattor , smartphones och på större multiprocessorsystem som t.ex. B. servrar och stordatorer .

Ett operativsystems uppgifter kan sammanfattas enligt följande: användarkommunikation; Laddar, kör, pausar och avslutar program; Hantering och tilldelning av processortid; Hantering av internt lagringsutrymme för applikationer; Hantering och drift av de anslutna enheterna; Skyddsfunktioner t.ex. B. genom åtkomstbegränsningar . Vägningen mellan dessa uppgifter har förändrats under tiden; i synnerhet är skyddsfunktioner som minneskydd eller begränsade användarrättigheter viktigare än på 1990 -talet. Detta gör system generellt mer robusta, vilket minskar t.ex. B. antalet program och system kraschar och gör också systemet mer stabilt mot attacker utifrån, till exempel datavirus .

Denna artikel behandlar termen "operativsystem" främst i samband med "datorsystem som vanligtvis används för informationsbehandling". Dessutom används operativsystem (med möjligen specialiserad funktionalitet) i princip i nästan alla enheter där programvara används (t.ex. speldatorer , mobiltelefoner , navigationssystem , maskiner inom maskinindustrin och många andra). Även många styrsystem (inbäddat system) z. B. i flygplan, bilar, tåg eller i satelliter har specialiserade operativsystem.

Definitioner och avgränsning

Ett operativsystem tar två viktiga uppgifter som i princip inte är direkt relaterade till varandra [3] :

  • En uppgift är att ge applikationsprogrammeraren rena abstraktioner av resurserna (istället för den fula hårdvaran). Operativsystemet erbjuder således ett lättare att förstå och mer hanterbart gränssnitt till den aktuella maskinen och "döljer" komplexiteten hos den underliggande maskinen: "Kontaktperson för programmeraren är inte längre den verkliga maskinen, utan en virtuell maskin (operativsystem) , som är mycket enklare är att förstå och programmera. ” [4] Operativsystemet skapar abstrakta objekt för att göra komplexiteten hanterbar. Ett exempel på en sådan abstraktion är filen . Detta kan till exempel vara i form av ett digitalt foto , ett sparat e -postmeddelande eller en webbplats . Det är definitivt lättare att hantera än detaljerna i hårddisklagring . [5]
  • Den andra uppgiften är att hantera hårdvaruresurserna: "Ett operativsystem måste säkerställa en ordnad och kontrollerad fördelning av processorer, minnesenheter och kringutrustning bland de olika program som konkurrerar om dem." [4] Operativsystemet organiserar och kontrollerar allokeringen processorer, minne och in / ut -enheter och övervakar vilket program som för närvarande använder vilka resurser. Om det till exempel finns flera jobb för en skrivare måste det anges hur dessa ska bearbetas. Detta innebär att flera program kan köras samtidigt på ett modernt operativsystem. Om flera användare använder en dator eller ett nätverk blir åtgärder för att hantera och skydda minne, input / output -enheter och andra driftsresurser ännu viktigare. Annars skulle användarna störa varandra. [6]

Helheten av alla program och filer som styr alla processer vid drift av en dator kallas systemprogramvara . Detta inkluderar operativsystem, men också systemrelaterad programvara som kompilatorer , tolkar och redaktörer . Programvara som webbläsare eller bokföringsprogram använder systemprogramvaran för att se till att allt går smidigt. [7] I litteraturen tolkas termen "operativsystem" annorlunda inom systemprogramvaran.

I DIN -samling 44300 (föråldrad, ersatt av ISO / IEC 2382: 2015 se: Lista över DIN -standarder / DIN 1–49999 enligt DIN 44300) är definitionen baserad på dess uppgift och position i en programhierarki:

"Operativsystemet bildas av programmen i ett digitalt datorsystem som tillsammans med datorsystemets egenskaper utgör grunden för de möjliga driftsätten för det digitala datorsystemet och i synnerhet styr och övervakar genomförandet av program . "

- DIN 44300 [8]

För Andrew S. Tanenbaum är termen operativsystem i huvudsak begränsat till kärnan : "Redaktörer, kompilatorer, montörer , bindemedel och kommandotolkar är definitivt inte en del av operativsystemet, även om de är betydelsefulla och användbara." [9] Många läroböcker följer denna smalare en synvinkel. Andra författare inkluderar också ett kommandospråk för operativsystemet: "Förutom att hantera maskinvaran [...] erbjuder moderna operativsystem många tjänster, till exempel för att förstå mellan processer, fil- och katalogsystem, dataöverföring över nätverk och en kommandospråk. " [10] En annan version av termen, som också inkluderar redaktörer och kompilatorer, går till exempel delvis tillbaka till äldre verk i det tysktalande området, men kan fortfarande hittas i aktuell litteratur. Författarna till Informatik-Dudens räknar också översättningsprogram och verktygsprogram till de viktigaste komponenterna i ett operativsystem. [11] På senare tid kan GNU / Linux -namnstriden ses som ett exempel på avgränsningsproblemen.

Oavsett hur bred eller smal termen "operativsystem" används innehåller operativsystemets installationsmedia vanligtvis ytterligare verktyg och applikationer.

Utvecklingsstadier

Utvecklingen av datoroperativsystem gick och fortsätter parallellt med utvecklingen och prestandan av tillgänglig hårdvara: Båda linjerna är ömsesidigt beroende och möjliggör eller kräver ytterligare utveckling på den "andra" sidan. Utvecklingen skedde delvis i små, ibland i större hopp:

System som bearbetar stansade kort (gäller även stansade band) är nu ett minne blott (sedan början av 1970 -talet). De är dock en bra utgångspunkt för att titta på systemutveckling: I dessa rumsligt relativt stora system fanns inga externa elektroniska lagringsmedier. Programmen var tillgängliga (på maskinspråk ) i form av staplar med hålslagna kort och "lästes" in i internminnet av operatören med hjälp av den stansade kortläsaren. Efter att "slut-kortet" som var applikationsprogrammet startade, även via kortläsaren för att läsa dess indata beroende på uppgiften (därav termen batchbehandling , Eng. Batch-bearbetning, kösystem) och dess resultat direkt till en skrivare och / eller via kortet fick punch spendera. Uppströms och nedströms utfördes med hjälp av elektromekaniska anordningar (kortstans, mixer, sorterare), registrerings-, blandnings- och sorteringsprocesser krävdes. Vid denna tidpunkt var den interna behandlingen redan betydligt snabbare än input / output -enheterna ; Att läsa en bunt med stansade kort (låda med 2000 kort) tog cirka 5–10 minuter, arbetsminnesstorleken på sådana datorer var cirka 16 till 64 kB (se till exempel System / 360 ).
Dessa maskiner hade inte ett konventionellt operativsystem som vanligt idag. Endast ett kontrollprogram (inbyggd bildskärm) förvarades i minnet och såg till att allt gick smidigt genom att överlämna kontrollen till de program som för närvarande körs. Datorn kunde bara köra ett program i taget.

En vidareutveckling - Multiprogrammed Batch Systems - kan stödja ytterligare enheter ( magnetband , första magnetiska diskar med t.ex. 7,25 MB lagringsvolym), köra flera program samtidigt (t.ex. i 3 'partitioner' ) samt program och data på yttre minnen behåller. Snabbare bearbetning var möjlig eftersom det inte fanns tid att läsa och spendera kortbuntarna - och processorerna blev snabbare. Mekanismer som spolning (mellanliggande utmatning av skrivardata på magnetband med fördröjd parallellutskrift) och alternativet för offline -drift har redan använts i stor utsträckning. Men det krävdes ett program som skulle ta på sig uppgifterna för I / O -hantering, minneshantering och framför allt CPU -schemaläggning, etc. Från och med nu kan man tala om de första operativsystemen.

Nästa steg var sedan konsekvenserna av respektive ansvarsområden som tilldelades systemen. Följande system skapades och används fortfarande idag: parallella system , distribuerade system , persondatorer , tidsdelningssystem , realtidssystem och senast personliga digitala assistenter och smartphones .

Inom PC -sektorn är de mest använda operativsystemen för närvarande de olika versionerna av Windows från Microsoft (ledande i system med GUI ), BSD inklusive macOS från Apple (mest använda desktop Unix) och GNU / Linux (ledande på servrar). För speciella tillämpningar (exempel: industriell kontroll ) används experimentella operativsystem också för forsknings- och undervisningsändamål.

Förutom de klassiska varianterna finns det också speciella operativsystem för distribuerade system där man skiljer mellan det logiska systemet och det eller de fysiska systemen. Den logiska datorn består av flera fysiska datorenheter. Många stordatorer, nummerkrossar och systemen från Cray fungerar enligt denna princip. Ett av de mest populära operativsystemen inom distribuerade system är Amoeba .

uppgifter

Arbetssystemets uppgifter inkluderar vanligtvis:

  • Minneshantering
    • Hantering av systemresursens huvudminne.
    • Loggning av minnesanvändning.
    • Reservation och frisläppande av minne.
  • ( Process ) hantering
    • Övervakning av minnesåtkomst och, vid behov, avslutande av processer vid ett skyddsfel .
    • Skapande av nya processer (antingen på begäran av operativsystemet eller på begäran av andra redan befintliga processer) och reservation av det minne som processerna kräver.
    • Kommunikation och synkronisering av processer med varandra ( kommunikation mellan processer)
  • Enhets- och filhantering
    • Effektiv tilldelning av in- / utmatningsenheter och kopplingsenheter (datakanaler, styrenheter), undvikande av konflikter
    • Initiering, övervakning av utförande, avslutning av input / output -processer.
    • Hantering av filsystemet . Skapande av ett namnutrymme med tillhörande lagringsobjekt och vid behov ytterligare objekt.
  • Rättighetshantering
    • Oberoende användare / program får inte störa varandra.
  • abstraktion
    • Dölj maskinens komplexitet för användaren
    • Abstraktion av maskinkonceptet (efter Coy ):
      • Verklig maskin = central enhet + enheter (hårdvara)
      • Abstrakt maskin = riktig maskin + operativsystem
      • Användarmaskin = abstrakt maskin + applikationsprogram

Av historiska skäl är en enhet ur ett operativsystems synvinkel allt som adresseras via in- / utgångskanaler. Dessa är inte bara enheter i traditionell bemärkelse, men under tiden också interna tillägg som grafikkort, nätverkskort och andra. (Under) program för initiering och styrning av dessa "enheter" kallas gemensamt för enhetsdrivrutiner .

Resurshantering och abstraktion

Utrustning eller resurser är alla komponenter som görs tillgängliga av maskinvaran på en dator, dvs. processorn (i multiprocessorsystem, processorerna), det fysiska minnet och alla enheter som hårddiskar, disketter och CD-ROM-enheter, nätverks- och gränssnittskort och andra. Hårdvarukompatibilitetslistan innehåller alla hårdvaruprodukter som har testats för funktionalitet i samband med ett specifikt operativsystem.

Inledningsexempel: timermoduler

Moderna datorsystem har timermoduler. I tidiga datorer , t.ex. B. komponenten 8284 från Intel används. Detta block måste först initieras. Han kan sedan avbryta processorn efter en tid eller periodiskt och få den att bearbeta sin egen rutin. Förutom initialiseringen måste en avbrottsrutin skapas, vars samtal måste programmeras på ett lämpligt språk (vanligtvis assembler ). Eftersom avbrott sker asynkront måste komplexa relationer med avseende på datastrukturer beaktas. Exakt kunskap om komponenten (datablad), datorns hårdvara (avbrottshantering) och processorn krävs. De enskilda komponenterna som är involverade i denna process sammanfattas under termen datorarkitektur.

Virtuella processorer

Ett modernt operativsystem med flera program använder en sådan timermodul för att avbryta den normalt enstaka processorn regelbundet (vanligtvis i millisekundintervallet) och eventuellt för att fortsätta med ett annat program (så kallad förebyggande multitasking ). Initialiseringen och avbrottsrutinen implementeras av operativsystemet. Även om bara en enda processor är tillgänglig kan flera program köras; varje program får en del av processortiden ( schemaläggning ). Med undantag för den långsammare körtiden uppträder varje program som om det hade en egen virtuell processor .

Virtuella timers

Dessutom har varje program sin egen virtuella timer via ett systemanrop, till exempel larm . Operativsystemet räknar avbrott i den ursprungliga timern och informerar program som använde larmsystemet . De enskilda tiderna hanteras via en .

abstraktion

Timerns hårdvara är därmed dold för programmen. Ett system med minneskydd möjliggör åtkomst till timermodulen endast via kärnan och endast via exakt definierade gränssnitt (kallas vanligen systemanrop som implementeras med hjälp av speciella processorkommandon som TRAP, BRK, INT). Inget program kan äventyra systemet, användningen av den virtuella timern är enkel och bärbar. Användaren eller programmeraren behöver inte oroa sig för de (komplexa) detaljerna.

Virtualisering av ytterligare resurser

Precis som processorer och timers är virtualiserade är detta också möjligt för alla andra driftsresurser. Vissa abstraktioner implementeras ibland bara som programvara , andra kräver speciell hårdvara.

Filsystem

Detaljerna för de externa lagringssystemen (hårddiskar, disketter eller CD-ROM-enheter) döljs via filsystem . Filnamn och kataloger ger enkel åtkomst, den faktiskt existerande blockstrukturen och enhetsskillnaderna är helt osynliga.

Internminne

Internminnet ( RAM ) kallas också huvudminne och är uppdelat i block (brickor) av operativsystemet, som görs tillgängliga för de laddade programmen på begäran. Minnet initialiseras vanligtvis, vilket innebär att all data som fortfarande kan finnas raderas i förväg. I många system görs ett kontinuerligt (sammanhängande) område tillgängligt för varje program via virtuellt minne . Hantering av virtuellt minne möjliggör ett flexibelt tillvägagångssätt där det verkliga, fysiskt tillgängliga minnet inte behöver vara sammanhängande ( segmentering ), och det behöver inte heller vara så stort som det ser ut ur programmens synvinkel. I stället skjuts individuella minnesblock, engelska sidor , fram och tillbaka mellan huvudminnet (RAM) och externt minne (t.ex. bytesfilen ) efter behov ( personsökning ).

nätverk

Uppgifterna om nätverksåtkomst döljs genom att lägga till en protokollstack till den faktiska hårdvaran (nätverkskort). Nätverksprogramvaran tillåter valfritt antal virtuella kanaler . På sockelnivån (programmering) är nätverkskortet helt osynligt, nätverket har många nya funktioner (dubbelriktade, pålitliga dataströmmar, adressering, routing).

skärm

En skärmutmatning beskrivs i allmänhet som ett grafiskt användargränssnitt (GUI, förkortning för grafiskt användargränssnitt ) om det går utöver en kommandotolk . Med rätt grafikkort och skärmar, är det möjligt att visa geometriska objekt (linjer, cirklar, ellipser, men även typsnitt och färger) på skärmen, från vilka mer komplexa geometriska element som knappar, menyer, etc., kan vara används för att skapa användargränssnitt för enkel kontroll av program.

Grafikkortet som hårdvara är helt dolt för programmeraren och användaren.

berättelse

Första operativsystem (fram till 1980)

De första datorerna klarade sig utan ett riktigt operativsystem, eftersom bara ett enda program kunde laddas i batch -läge och den stödda maskinvaran fortfarande var mycket hanterbar. Den första digitala datorn utvecklades av Charles Babbage (1792–1872). Han såg redan behovet av att använda sin "analysmaskin" med programvara . Han anlitade dottern till den berömda poeten Lord Byron Ada Lovelace för att skriva tidiga program. Ada Lovelace anses vara den första kvinnliga programmeraren. Charles Babbage lyckades aldrig få sin "Analytical Machine" att fungera korrekt. Växlar, länkar och andra mekaniska delar kunde inte tillverkas med den nödvändiga precessionen. [12]

Efter Charles Babbages misslyckade försök gjordes små ansträngningar för att starta ytterligare ett digitalt datorprojekt. Det var först före andra världskriget som Babbages idéer togs upp igen. De första digitala datorerna implementerades på grundval av elektriska reläer och rör. De tidigaste forskarna inkluderade Howard Aiken från Havard University , John von Neumann vid Princeton University , John William Mauchly , John Presper Eckert i Pennsylvania och Konrad Zuse i Berlin. De första datorerna utvecklades av ett team av tekniker som ansvarade för konstruktion, konstruktion, programmering och underhåll av sådana maskiner. Programmeringsspråk var okända och programmen implementerades med hjälp av plug-in-kort på vilka programmen programmerades med hjälp av elektriska ledningar. Eftersom en dator bara kunde köra ett enda program var operativsystem onödiga. Att beräkna en enda uppgift tog sekunder, och att köra ett program tog timmar. Men bara om datorerna med tusentals rör eller reläer fungerade korrekt. I början av 1950 -talet ersattes elektriska ledningar med stämpelkort . [13]

Operativsystemets föregångare är den inbyggda bildskärmen som uppfanns 1956 i form av GM-NAA I / O på General Motors för IBM 704 , en mjukvara som automatiskt startade nästa jobb efter att ett batchjobb slutförts. 1959 uppstod SHARE -operativsystemet (SOS), som redan hade rudimentär resurshantering. [14] Dess efterträdare IBSYS hade redan ett enkelt skal med kommandospråk. [15]

1961 var det kompatibla tidsdelningssystemet (CTSS) för IBM 7094 påMIT det första operativsystemet för fleranvändardrift. Detta gjorde det möjligt för flera användare att använda datorsystemet samtidigt med anslutna terminaler . [16] Ett stort antal program som laddades samtidigt gjorde det nödvändigt att avgränsa de minnesområden de använde. Virtuellt minne [17] utvecklades som en lösning 1956 vid Tekniska universitetet i Berlin och implementerades i stordatoroperativsystem för första gången i mitten av 1960-talet.

Vid den tiden levererade hårdvarutillverkaren vanligtvis operativsystemet som bara kördes på en viss modellserie, även bara på ett visst system, så att program inte kunde portas mellan olika datorer eller mellan olika generationer. Med introduktionen av System / 360 -modellserien från IBM 1964 introducerade IBM OS / 360 -operativsystemet i olika versioner (OS / 360 för system baserade enbart på stansade kort, TOS / 360 för maskiner med banddrivare, DOS / 360 för dem med hårddiskar). Det var det första operativsystemet som användes i alla modellserier.

Från 1963 utvecklades Multics av AT&T i samarbete medMIT , General Electric och Bell Laboratories (Bell Labs), men det användes bara från 1969 till 2000. Multics programmerades i PL / I. Inspirerad av arbetet med Multics började en grupp under ledning av Ken Thompson och Dennis Ritchie på Bell Labs att utveckla Unix 1969. Från 1970 till 1972 var RSX-15 och RSX-11 tidiga föregångare till dagens Windows NT . Under åren 1972–1974 implementerades Unix på nytt i det högre programmeringsspråket C med sikte på portabilitet, med undantag för några delar, för att kunna köras på den då nya PDP-11 . Som ett resultat utvecklades UNIX till en hel familj av system för olika hårdvaruplattformar.

De första datorerna som Altair 8800 från 1975 hade ursprungligen inget operativsystem. Därför måste alla åtgärder anges i en ren maskinkod . Altair 8800 fick sitt första operativsystem i form av en BASIC -tolk. [18] Detta representerade både en programmeringsmiljö och det allmänna gränssnittet mellan användaren och hårdvaran (som denna tolk styrde direkt). Det var både en runtime -miljö och ett användargränssnitt; Med vissa kommandon kan användaren till exempel ladda och spara data och köra program. År 1974 uppfann Gary Kildall CP / M , som anses vara det första universella PC -operativsystemet. På grund av dess modulära design (den plattformsoberoende kärnan BDOS baserades på ett hårdvarudrivrutinlager som heter BIOS) kan den med rimlig ansträngning överföras till många inkompatibla PC-plattformar. En programmeringsmiljö (mestadels) kontrollerade inte längre hårdvaran direkt utan använde operativsystemets gränssnitt. Som ett resultat kunde programmeringsmiljön inte längre bara köras på specifik hårdvara, utan på många datorer.

Rent textbaserade användargränssnitt var inte längre tillräckligt för den framväxande datorgrafiken . 1973 introducerade Xerox Alto var det första datorsystemet med ett objektorienterat operativsystem [19] och ett grafiskt användargränssnitt, vilket gjorde den här datorn lämplig för stationär publicering och representerade ett stort steg framåt när det gäller användarvänlighet. [20]

Milstolpar

C64, en hemmadator från 1980 -talet

C64C -system med VC1541 -II -diskettenhet och 1084S RGB -bildskärm (1986)

På 1980 -talet blev hemmadatorer populära. Förutom att utföra användbara uppgifter kan dessa också utföra spel. Hårdvaran bestod av en 8-bitars processor med upp till 64 KiB RAM, ett tangentbord och en bildskärm eller RF-utgång. En av de mest populära av dessa datorer var Commodore C64 med mikroprocessorn 6510 (en variant av 6502 ). Den här datorn hade en systemkärna i sin egen 8 KiB ROM -modul kallad Kernal med ett BIOS ( Basic Input / Output System ), som initierade enhetens skärm, tangentbord, seriellt IEC -gränssnitt för diskettstationer eller skrivare, och kassettgränssnitt delvis abstraherat en avlopp koncept. Systemet kan drivas och programmeras via en separat 8 KiB-ROM- BASIC , som var baserad på funktionerna i BIOS. Operativsystemet för den här datorn kan ses som en bra maskinvaruabstraktion på BASIC -tolkens nivå. Naturligtvis finns det ingen kärna, minne eller annat hårdvaruskydd. Många program, särskilt spel, ignorerade BIOS och kom direkt till motsvarande hårdvara.

Grundprogram Program för maskinspråk
8k ROM BASIC PRINT #, FOR
8k ROM-BIOS (enhetsdrivrutin) / Kernal / JSR Program för maskinspråk
Hårdvara (processor (er), minne, enheter)

Abstraktionslager i operativsystemet på hemdatorn C64

Apples grafiska användargränssnitt (GUI)

Exempel på ett grafiskt användargränssnitt

Xerox utvecklade Smalltalks utvecklingssystem vid Palo Alto Research Center ( PARC ) (Xerox utvecklade de första datorerna med ett grafiskt användargränssnitt med ALTO (1973) och Star (1981)). Apple erbjöd Xerox att köpa tekniken; Men eftersom PARC främst var ett forskningscentrum fanns det inget intresse för försäljning och marknadsföring. Efter att Apples vd Steve Jobs erbjöd Xerox -aktier i Apple fick han visa några Apple -utvecklare Xerox -demos. Efter det var det definitivt klart för Apple -utvecklarna att det grafiska användargränssnittet tillhör framtiden, och Apple började utveckla ett eget grafiskt användargränssnitt.

Många funktioner och principer för alla moderna grafiska användargränssnitt för datorer som vi känner dem idag är ursprungliga Apple-utvecklingar ( rullgardinsmenyer , skrivbordsmetaforen , dra och släpp , dubbelklicka). Påståendet att Apple olagligt kopierat sitt Xerox GUI är en ständig fråga; det finns dock allvarliga skillnader mellan en Alto från Xerox och Lisa / Macintosh .

Mac OS efterträdare

Apple I -dator

Mitte der 1990er Jahre steckte das Unternehmen Apple in einer tiefen Krise; es schien kurz vor dem Ruin. Ein dringliches Problem war dabei, dass Apples Betriebssystem Mac OS als veraltet galt, weshalb sich Apple nach Alternativen umzusehen begann. Nach dem Scheitern des wichtigsten Projektes für ein modernes Betriebssystem mit dem Codenamen Copland sah sich Apple gezwungen, Ausschau nach einem für die eigenen Zwecke verwendbaren Nachfolger zu halten. Zuerst wurde vermutet, dass Apple das Unternehmen Be , mit ihrem auch auf Macs lauffähigen Betriebssystem BeOS , übernehmen würde. Die Übernahmeverhandlungen scheiterten jedoch im November 1996, da der frühere Apple-Manager und Chef von Be Jean-Louis Gassée im Falle einer Übernahme 300 Millionen US-Dollar und einen Sitz im Vorstand verlangte. Da Gil Amelio versprochen hatte, bis zur Macworld Expo im Januar 1997 die zukünftige Strategie zu Mac OS zu verkünden, musste schnell eine Alternative gefunden werden. Überraschend übernahm Apple dann noch im Dezember 1996 für 400 Mio. US-Dollar das Unternehmen NeXT des geschassten Apple-Gründers Steve Jobs mitsamt dem Betriebssystem NeXTStep bzw. OPENSTEP , das Apples Grundlage für die nachfolgende neue Betriebssystem-Generation werden sollte. Unter dem Codenamen Rhapsody wurde es weiterentwickelt zu einem UNIX für Heim- und Bürocomputer mit dem Namen „Mac OS X“; von Version 10.8 (2012) bis 10.11 hieß es einfach „OS X“, seit Version 10.12 (2016) „macOS“. Ab Version 10.5 ist es konform mit der Single UNIX Specification .

Das Betriebssystem OPENSTEP war die erste Implementierung der OpenStep -Spezifikationen, die zusammen mit Sun entwickelt wurden. Deren Entwicklung hatte Einfluss auf Java und somit letztlich auf Android .

Disk Operating System (DOS)

Der Ursprung von DOS liegt in CP/M und wurde 1974 von Digital Research eingesetzt. Die Portierung auf den Motorola 68000 , genannt CP/M-68k, selbst kein großer kommerzieller Erfolg, wurde zur Grundlage für TOS , dem Betriebssystem des Atari ST . MS-DOS Version 1.0 erschien 1981 als Nachbildung von CP/M und wurde für IBM-PCs eingesetzt. Es setzt auf das BIOS auf und stellt Dateisystemoperationen zur Verfügung.

Die ersten IBM-PCs waren ganz ähnlich wie der C64 aufgebaut. Auch sie verfügten über ein eingebautes BIOS zur Initialisierung und Abstraktion der Hardware. Sogar ein BASIC-Interpreter war vorhanden. Im Gegensatz zum BIOS wurde auf BASIC jedoch in den kompatiblen Rechnern anderer Unternehmen verzichtet.

Der PC konnte mit seinem Intel-8088 -Prozessor (16-Bit- Register ) bis zu 1 MiB Speicher adressieren, die ersten Modelle waren jedoch nur mit 64 KiB ausgestattet. Diskettenlaufwerke lösten die alten Kassettenrekorder als Speichermedium ab. Sie erlauben vielfaches Schreiben und Lesen einzeln adressierbarer 512-Byte-Blöcke. Die Benutzung wird durch ein Disk Operating System (DOS) vereinfacht, das ein abstraktes Dateikonzept bereitstellt. Blöcke können zu beliebig großen Clustern ( Zuordnungseinheit – kleinste für das Betriebssystem ansprechbare Einheit) zusammengefasst werden. Dateien (logische Informationseinheiten) belegen einen oder mehrere dieser (verketteten) Cluster. Eine Diskette kann viele Dateien enthalten, die über Namen erreichbar sind.

Auf den ersten PCs war kein Speicherschutz realisiert, die Programme konnten daher an DOS vorbei direkt auf BIOS und sogar auf die Hardware zugreifen. Erst spätere PCs wurden mit dem Intel-80286 -Prozessor ausgestattet, der Speicherschutz ermöglichte. MS-DOS stellte auch keine für alle Zwecke ausreichende Abstraktion zur Verfügung. Es ließ sich nur ein Programm gleichzeitig starten, die Speicherverwaltung war eher rudimentär. Ein Teil der Hardware wurde nicht unterstützt und musste von Programmen direkt angesprochen werden, was dazu führte, dass beispielsweise für jedes Spiel die Soundkarte neu konfiguriert werden musste. Die Performance einiger Routinen, speziell zur Textausgabe, war verbesserungswürdig. Viele Programme setzten sich daher über das Betriebssystem hinweg und schrieben z. B. direkt in den Bildschirmspeicher . MS-DOS wurde mit einem Satz von Programmen (sogenannten Werkzeugen) und einem Kommandointerpreter (COMMAND.COM) ausgeliefert.

Anwenderprogramm (COMMAND.COM, WORDSTAR)
MSDOS (Dateisystem) INT Anwenderprogramm (COMMAND.COM, WORDSTAR)
BIOS (Gerätetreiber) INT Anwenderprogramm (COMMAND.COM, WORDSTAR)
Hardware (Prozessor(en), Speicher, Geräte)

Abstraktionsschichten eines PC unter DOS

Windows

1983 begann das Unternehmen Microsoft mit der Entwicklung einer grafischen Betriebssystem-Erweiterung („Grafik-Aufsatz“) für MS-DOS namens Windows. Das MS-DOS und BIOS-Design der PCs erlaubten keine Weiterentwicklung in Richtung moderner Serverbetriebssysteme. Microsoft begann Anfang der 1990er ein solches Betriebssystem zu entwickeln, das zunächst als Weiterentwicklung von OS/2 geplant war (an dessen Entwicklung Microsoft zwischen 1987 und 1991 beteiligt war): Windows NT 3.1 (Juli 1993). Für den Consumer-Markt brachte Microsoft am 15. August 1995 Windows 95 heraus; es setzt auf MS-DOS auf. Dieser „Consumer-Zweig“, zusammengefasst Windows 9x , wurde mit der Veröffentlichung von Windows Me (August/September 2000) abgeschlossen.

Aufbau von Windows NT: Über die Hardware wurde eine Abstraktionsschicht, der Hardware Abstraction Layer (HAL) gelegt, auf den der Kernel aufsetzte. Verschiedene Gerätetreiber waren als Kernelmodule ausgeführt und liefen wie der Kernel im privilegierten Kernel Mode . Sie stellten Möglichkeiten der E/A-Verwaltung, Dateisystem, Netzwerk, Sicherheitsmechanismen, virtuellen Speicher usw. zur Verfügung. Systemdienste (System Services) ergänzten das Konzept; wie ihre Unix -Pendants, die daemons , waren sie in Form von Prozessen im User-Mode ausgeführt.

OS/2-
Programme
Win32-Anwendungen DOS-
Programme
Win16-
Programme
POSIX-
Programme
User Mode
Win32-Anwendungen Andere DLLs DOS-
System
Windows on
Windows
OS/2-
Subsystem
Win32 Subsystem (kernel32.dll, user32.dll, gdi32.dll) Win32 Subsystem (kernel32.dll, user32.dll, gdi32.dll) Win32 Subsystem (kernel32.dll, user32.dll, gdi32.dll) POSIX-
Subsystem
Systemdienste Kernel Mode
Ein-/Ausgabe-Manager (Dateisystem, Netzwerk) Objektmanager/Security Resource Manager/Processmanager
Local Procedure Call Manager/Virtual Memory Manager

Mikrokernel
Window-Manager
Gerätetreiber Hardware-Abstraktions-Schicht (HAL) Grafiktreiber
Hardware (Prozessor(en), Speicher, Geräte)

Abstraktionsschichten unter Windows NT (etwas vereinfacht)

Über sogenannte Personalities wurden dann die Schnittstellen bestehender Systeme nachgebildet, zunächst für Microsofts eigenes, neues Win32 -System, aber auch für OS/2 (ohne Grafik) und POSIX .1, also einer Norm, die eigentlich Unix-Systeme vereinheitlichen sollte. Personalities liefen wie Anwenderprogramme im unprivilegierten User-Mode . Das DOS-Subsystem war in Form von Prozessen implementiert, die jeweils einen kompletten PC mit MS-DOS als virtuelle Maschine darstellten; darauf konnte mit einer besonderen Version von Windows 3.1, dem Windows-on-Windows , auch Win16 -Programme ausgeführt werden. Windows-on-Windows blendete dazu die Fenster der Win16-Programme in das Win32-Subsystem ein, das die Grafikausgabe verwaltete. Das System erlaubte daher die Ausführung von Programmen sowohl für MS-DOS wie für die älteren Windows-Betriebssysteme, allerdings unter vollkommener Kontrolle des Betriebssystems. Dies galt aber nur für die Implementierung für Intel-80386-Prozessoren und deren Nachfolger.

Programme, die direkt auf die Hardware zugreifen, blieben aber außen vor. Insbesondere viele Spiele konnten daher nicht unter Windows NT ausgeführt werden, zumindest bis zur Vorstellung von WinG , das später in DirectX umbenannt wurde. Ohne die Möglichkeit eines direkten Zugriffs auf die Grafikhardware bzw. -treiber war die Programmierung von leistungsfähigen Actionspielen zunächst auf die älteren Windows-Versionen beschränkt.

Windows NT erschien in den Versionen 3.1, 3.5, 3.51 und 4.0. Windows 2000 stellte eine Weiterentwicklung von Windows NT dar. Auch Windows XP , Windows Server 2003 , Windows Vista , Windows Server 2008 , Windows 7 , Windows Server 2012 , Windows 8 /8.1 und Windows 10 bauen auf der Struktur von Windows NT auf.

Linux (GNU/Linux)

Linus Torvalds, Entwickler von Linux

1991 begann Linus Torvalds in Helsinki / Finnland mit der Entwicklung des Linux-Kernels , den er bald danach der Öffentlichkeit zur Verfügung stellte.

Es läuft als portables Betriebssystem auf verschiedenen Rechnerarchitekturen, wurde aber zunächst für PCs mit Intel-80386 -Prozessor entwickelt. Das in diesen Rechnern verwendete BIOS dient nur noch zum Initialisieren der Hardware und zum Starten des Bootloaders , da die Routinen des BIOS für Multitaskingsysteme wie Linux ungeeignet sind. Dies kommt zustande, da insbesondere der Prozessor durch Warten belastet wird anstatt durch eine – in der Hardware durchaus vorhandene – geschickte Unterbrechungsverwaltung (interrupt handling) auf Ereignisse (events) zu reagieren. Linux verwendet daher nach dem Starten des Systems eigene Gerätetreiber.

Es verteilt die Prozessorzeit auf verschiedene Programme (Prozesse). Jeder dieser Prozesse erhält einen eigenen, geschützten Speicherbereich und kann nur über Systemaufrufe auf die Gerätetreiber und das Betriebssystem zugreifen.

Die Prozesse laufen im Benutzermodus (user mode) , während der Kernel im Kernel-Modus (kernel mode) arbeitet. Die Privilegien im Benutzermodus sind sehr eingeschränkt. Ein direkter Zugriff wird nur sehr selten und unter genau kontrollierten Bedingungen gestattet. Dies hat den Vorteil, dass kein Programm z. B. durch einen Fehler das System zum Absturz bringen kann.

Linux stellt wie sein Vorbild Unix eine vollständige Abstraktion und Virtualisierung für nahezu alle Betriebsmittel bereit (z. B. virtueller Speicher , Illusion eines eigenen Prozessors).

Anwenderprogramme (zB Textverarbeitung, Tabellenkalkulation oder Browser) User Mode
Complex Libraries ( GLib , GTK+ , Qt , SDL , EFL ) Anwenderprogramme
Complex Libraries ( GLib , kde) Simple Libraries sin, opendbm Anwenderprogramme
C-Standard-Bibliothek : glibc open, exec, sbrk, socket, fopen, calloc
Systemaufrufe TRAP, CALL, BRK, INT (je nach Hardware) Kernel Mode
Kernel (Gerätetreiber, Prozesse, Netzwerk, Dateisystem)
Hardware (Prozessor(en), Speicher, Geräte)

Fast vollständige Abstraktion unter Linux

Verbreitung

Das Unternehmen StatCounter analysiert die Verbreitung von Endanwender-Betriebssystemen anhand von Zugriffsstatistiken diverser Websites. Sehr viele Jahre war Windows an der Spitze, bis es laut StatCounter 2017 von Android überholt wurde. [21]

Die laut StatCounter am weitesten verbreiteten Endanwender-Betriebssysteme sind: [22]

2017 2018
1. Android 31,76 % Pfeil rechts oben.svg 38,97 %
2. Windows 43,82 % Pfeil rechts unten.svg 37,07 %
3. iOS 11,71 % Pfeil rechts oben.svg 13,18 %
4. macOS 5,09 % Pfeil rechts oben.svg 5,24 %
5. Linux 0,94 % Pfeil rechts unten.svg 0,76 %
nicht identifizierte B. 3,64 % Pfeil rechts unten.svg 2,72 %
andere Betriebssysteme 3,03 % Pfeil rechts unten.svg 2,06 %


Siehe auch

Literatur

  • Albrecht Achilles: Betriebssysteme. Eine kompakte Einführung mit Linux. Springer: Berlin, Heidelberg, 2006. ISBN 978-3-540-23805-8 .
  • Uwe Baumgarten, Hans-Jürgen Siegert: Betriebssysteme. Eine Einführung. 6., überarbeitete, aktualisierte und erweiterte Auflage, Oldenbourg Verlag: München, Wien, 2007.
  • Erich Ehses, Lutz Köhler, Petra Riemer, Horst Stenzel, Frank Victor: Systemprogrammierung in UNIX / Linux. Grundlegende Betriebssystemkonzepte und praxisorientierte Anwendungen. Vieweg+Teubner: Wiesbaden, 2012. ISBN 978-3-8348-1418-0 .
  • Eduard Glatz: Betriebssysteme. Grundlagen, Konzepte, Systemprogrammierung. 1. Auflage. dpunkt: Heidelberg, 2006. ISBN 3-89864-355-7 .
  • Sibsankar Haldar, Alex A. Aravind: Operating Systems. Delhi (ua): Pearson Education, 2009. ISBN 978-81-317-1548-2 .
  • Helmut Herold, Bruno Lurz, Jürgen Wohlrab, Matthias Hopf: Grundlagen der Informatik. Kapitel 9: Betriebssysteme. 3., aktualisierte Auflage, Pearson: Hellbergmoos, 2017, S. 433–462. ISBN 978-3-86894-316-0 .
  • Peter Mandl: Grundkurs Betriebssysteme. Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation, Virtualisierung. 4. Auflage, Springer Vieweg: Wiesbaden, 2014. ISBN 978-3-658-06217-0 .
  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne: Operating System Concepts. Ninth Edition, John Wiley & Sons: Hoboken, 2013. ISBN 978-1-118-06333-0 .
  • Andrew S. Tanenbaum , Herbert Bos: Moderne Betriebssysteme. 4., aktualisierte Auflage. Pearson: Hallbergmoos, 2016. ISBN 978-3-86894-270-5 .
    • Ältere zitierte Ausgabe: Andrew S. Tanenbaum: Moderne Betriebssysteme. 3., aktualisierte Auflage, Pearson Studium, 2009.
    • Englische Originalausgabe: Modern Operating Systems. 4th Edition, Pearson, 2016.

Weblinks

Commons : Betriebssystem – Sammlung von Bildern, Videos und Audiodateien
Wiktionary: Betriebssystem – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Einzelnachweise

  1. Berechnung nach https://de.statista.com - abgerufen am 2. Februar 2020
  2. Andrew S. Tanenbaum: Moderne Betriebssysteme . Pearson Studium, 3., aktualisierte Auflage , ISBN 978-3-8273-7342-7
  3. Andrew S. Tanenbaum: Moderne Betriebssysteme . 3., aktualisierte Aufl., Pearson, 2009, S. 33.
  4. a b Helmut Herold, Bruno Lurz, Jürgen Wohlrab, Matthias Hopf: Grundlagen der Informatik. 3., aktualisierte Auflage, Pearson, 2017, S. 438.
  5. Andrew S. Tanenbaum: Moderne Betriebssysteme . 3., aktualisierte Aufl., Pearson, 2009, S. 34.
  6. Andrew S. Tanenbaum: Moderne Betriebssysteme . 3., aktualisierte Aufl., Pearson, 2009, S. 35–36.
  7. Peter Mandl: Grundkurs Betriebssysteme. 4. Aufl., Springer, 2014, S. 2.
  8. Zitiert nach Uwe Baumgarten, Hans-Jürgen Siegert: Betriebssysteme. Eine Einführung. 6., überarbeitete, aktualisierte und erweiterte Auflage, Oldenbourg Verlag: München, Wien, 2007, S. 3.
  9. Tanenbaum: Moderne Betriebssysteme . 3. Aufl. 2009, S. 79.
  10. Anthony Ralston, Edwin D. Reilly: Encyclopaedia of Computer Science. New York: Van Nostrand Reinhold, 3. Auflage 1993, S. 1290. Englisches Originalzitat: „Besides managing the hardware resources […], modern operating systems also provide numerous services, such as inter-process communication, file and directory systems, data transfer over networks, and a command language“.
  11. Volker Claus, Andreas Schwill: Duden Informatik AZ. Fachlexikon für Studium, Ausbildung und Beruf. Mannheim: Bibliographisches Institut & FA Brockhaus, 4. Aufl., 2006, ISBN 3-411-05234-1 .
  12. Andrew S. Tanenbaum: Moderne Betriebssysteme, Pearson Studium,2002, ISBN 3-8273-7019-1 , Seite 18
  13. Andrew S. Tanenbaum: Moderne Betriebssysteme, Pearson Studium,2002, ISBN 3-8273-7019-1 , Seite 18
  14. SOS Reference Manual, 1959.
  15. Jack Harper, IBM 7090/94 IBSYS Operating System, 2001.
  16. Fernando J. Corbató, Marjorie Merwin Daggett, Robert C. Daley: An Experimental Time-Sharing System, 1962.
  17. E. Jessen: Origin of the Virtual Memory Concept. IEEE Annals of the History of Computing. Band 26. 4/2004, S. 71 ff.
  18. Computer Classics, Jörg und Kerstin Allner, Data Becker Verlag, ISBN 3-8158-2339-0 , S. 27
  19. blinkenlights.com , abgerufen am 23. Oktober 2017
  20. Zenon W. Pylyshyn, Liam Bannon: Perspectives on the Computer Revolution . Intellect Books, January 1989, ISBN 978-0-89391-369-4 , S. 262, 263 etc. Vergleich Alto und Star mit detaillierten Spezifikationen.
  21. Android verdrängt Windows vom ersten Platz der Marktanteile. Pro-Linux , 4. April 2017, abgerufen am 4. April 2017 .
  22. Operating System Market Share Worldwide. StatCounter, 5. September 2018, abgerufen am 5. September 2018 .