Betriebssystem

ÔĽŅ
Betriebssystem

Ein Betriebssystem ist eine Software, die Grundfunktionen f√ľr die Verwendung (den Betrieb) eines Computers bereitstellt. Es verwaltet Betriebsmittel wie Speicher, Ein- und Ausgabeger√§te und steuert die Ausf√ľhrung von Programmen.

Das Betriebssystem ("BS") stellt grundlegende Funktionen bereit, die zum Ausf√ľhren von (Anwender)Software auf einem Computer ben√∂tigt werden. Das BS bildet dadurch die Verbindung zwischen der Hardware des Computers und der Anwendungssoftware des Benutzers.

Betriebssystem heißt auf Englisch operating system (OS). Dieser englische Ausdruck kennzeichnet den Sinn und Zweck: Die in den Anfängen der Computer stark mit schematischen und fehlerträchtigen Arbeiten beschäftigten Operatoren schrieben Programme, um sich die Arbeit zu erleichtern; diese wurden nach und nach zum operating system zusammengefasst.

Betriebssysteme bestehen in der Regel aus einem Betriebssystemkern (englisch: Kernel), der die Hardware des Computers verwaltet, sowie grundlegenden Programmen, die dem Start des Betriebssystems und dessen Konfiguration dienen. Betriebssysteme finden sich in fast allen Computern: Als Echtzeitbetriebssysteme auf Prozessrechnern, auf normalen PCs und auf Mehrprozessorsystemen wie z. B. Hosts und Gro√ürechnern.

Die Aufgaben eines Betriebssystems lassen sich wie folgt zusammenfassen; Details siehe Kapitel Aufgaben:
Benutzerkommunikation; Laden, Ausf√ľhren, Unterbrechen und Beenden von Programmen; Verwaltung und Zuteilung der Prozessorzeit; Verwaltung des internen Speicherplatzes f√ľr Anwendungen; Verwaltung und Betrieb der angeschlossenen Ger√§te

Dieser Artikel behandelt den Begriff ‚ÄěBetriebssystem‚Äú haupts√§chlich im Kontext ‚Äěallgemein zur Informationsverarbeitung verwendete Computersysteme‚Äú. Daneben sind Betriebssysteme (mit ggf. spezialisierter Funktionalit√§t) grunds√§tzlich in nahezu allen Ger√§ten im Einsatz, in denen Software betrieben wird (wie Spielecomputer, Mobiltelefone, Navigationssysteme, Maschinen der Maschinenbaubranchen u. v. a.). Auch viele Steuerungssysteme (Eingebettetes System) die z.B. in Flugzeugen, Autos, Z√ľgen, oder in Satelliten zu finden sind, besitzen spezialisierte Betriebssysteme.

Inhaltsverzeichnis

Definitionen und Abgrenzung

In der DIN-Sammlung 44300 wird Betriebssystem definiert mit: Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der m√∂glichen Betriebsarten des digitalen Rechensystems bilden und die insbesondere die Abwicklung von Programmen steuern und √ľberwachen.

In der Literatur wird der Begriff ‚ÄěBetriebssystem‚Äú unterschiedlich breit interpretiert:

So beschränkt Andrew S. Tanenbaum den Begriff auf den Betriebssystemkern. Er schreibt:

‚ÄěEditoren, Compiler, Assembler, Binder und Kommandointerpreter sind definitiv nicht Teil des Betriebssystems, auch wenn sie bedeutsam und n√ľtzlich sind.‚Äú

‚Äď Andrew S. Tanenbaum: [1]

In diesem Sinn stellt das Betriebssystem selbst lediglich eine Schnittstelle f√ľr Systemfunktionen (auch Systemrufe oder Systemaufrufe genannt) bereit, die von Programmen genutzt werden k√∂nnen. Hierzu sind auch Boot-Loader, Ger√§tetreiber, bestimmte Systemdienste, Programmbibliotheken etc. erforderlich. Die meisten aktuellen Betriebssystem-Lehrb√ľcher und Universit√§tsvorlesungen folgen dieser engeren Sichtweise und behandeln daher ausschlie√ülich die Aufgaben des Betriebssystemkerns.

Andere Autoren z√§hlen u. a. auch eine Kommandosprache zum Betriebssystem:

‚Äě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‚Äú

‚ÄěAu√üer die Hardware zu verwalten [...], bieten moderne Betriebssysteme zahlreiche Dienste an, etwa zur Verst√§ndigung der Prozesse untereinander, Datei- und Verzeichnissysteme, Daten√ľbertragung √ľber Netzwerke und eine Befehlssprache.‚Äú

‚Äď Anthony Ralston, Edwin D. Reilly: [2]

Eine noch weitere Fassung des Begriffes, die beispielsweise auch Editoren und Compiler umfasst, geht zum Teil auf √§ltere Werke des deutschen Sprachraums zur√ľck, l√§sst sich aber auch in aktueller Literatur noch finden. So z√§hlen die Autoren des Informatik-Dudens[3] auch √úbersetzungsprogramme und Dienstprogramme zu den wesentlichen Komponenten eines Betriebssystems. In j√ľngerer Zeit kann der GNU/Linux-Namensstreit als Beispiel f√ľr die Abgrenzungsprobleme angesehen werden.

Ungeachtet dessen, wie weit oder wie eng man den Begriff ‚ÄěBetriebssystem‚Äú fasst, enthalten die Installationsmedien f√ľr Betriebssysteme f√ľr gew√∂hnlich zus√§tzliche Dienst- und Anwendungsprogramme.

Entwicklungsstufen

Die Entwicklung von Computer-Betriebssystemen verlief und verl√§uft parallel zur Entwicklung und Leistungsf√§higkeit verf√ľgbarer Hardware: Beide Linien bedingten sich gegenseitig und erm√∂glichten bzw. erforderten Weiterentwicklungen auf der 'anderen' Seite. Die Entwicklung verlief zum Teil in kleinen, manchmal in gr√∂√üeren Spr√ľngen:

Lochkarten verarbeitende Systeme (gilt sinngem√§√ü auch f√ľr Lochstreifen) geh√∂ren mittlerweile (seit Anfang der 70er Jahre) der Vergangenheit an. Jedoch sind sie ein guter Ansatz zur Betrachtung der Systementwicklung: In diesen r√§umlich relativ gro√üen Systemen gab es noch keine externen elektronischen Speichermedien. Die Programme lagen (in Maschinensprache) in Form von Lochkartenstapeln vor und wurden durch den Operator √ľber den Lochkartenleser in den internen Speicher 'eingelesen'. Nach der ‚ÄěEnde-Karte‚Äú wurde das Anwendungsprogramm gestartet, das seine Eingabedaten je nach Aufgabenstellung ebenfalls √ľber den Kartenleser lesen (deshalb der Begriff Stapelverarbeitung, engl. batch processing, queued systems) und seine Ergebnisse direkt √ľber einen Drucker und/oder √ľber den Kartenstanzer ausgeben musste. Vor- und nachgelagert waren, mithilfe elektro-mechanischer Ger√§te (Kartenlocher, Mischer, Sortierer) ausgef√ľhrt, Erfassungs-, Misch- und Sortiervorg√§nge erforderlich. Bereits zu diesem Zeitpunkt war die interne Verarbeitung deutlich schneller als die Ein-/Ausgabeger√§te; das Lesen eines Lochkartenstapels (Karton mit 2000 Karten) dauerte ca. 5-10 Minuten, die Arbeitsspeichergr√∂√üen solcher Rechner lagen bei ca. 16 bis 64 KB (Beispiel siehe System/360).
Diese Maschinen besa√üen kein konventionelles Betriebssystem, wie es heute gel√§ufig ist. Lediglich ein Kontrollprogramm (resident monitor) wurde im Speicher gehalten und sorgte f√ľr den reibungslosen Ablauf, indem es die Kontrolle an die momentan auszuf√ľhrenden Programme √ľbergab. Der Rechner konnte stets nur ein Programm nach dem anderen ausf√ľhren.

Eine Weiterentwicklung ‚Äď Multiprogrammed Batch Systems ‚Äď konnte zus√§tzliche Ger√§te unterst√ľtzen (Magnetbandeinheiten, erste Magnetplatten mit z. B. 7,25 MB Speichervolumen), mehrere Programme gleichzeitig ausf√ľhren (z. B. in 3 'Partitionen') sowie Programme und Daten auf externen Speichern halten. Eine schnellere Abarbeitung war m√∂glich, da die Zeit f√ľr das Lesen und Ausgeben der Kartenstapel entfiel ‚Äď und die Prozessoren schneller wurden. Hier wurden Mechanismen wie das Spooling (Zwischenausgabe von Druckerdaten auf Magnetband mit verz√∂gertem, parallel m√∂glichem Drucken) und die M√∂glichkeit des Offline-Betriebs bereits ausgiebig genutzt. Jedoch war ein Programm n√∂tig, welches sich der Aufgaben E/A-Verwaltung, Speicherverwaltung und vor allem CPU-Scheduling etc. annimmt. Ab diesem Zeitpunkt konnte man von ersten Betriebssystemen reden.

Die nächsten Schritte waren dann Folgen der jeweiligen Aufgabenbereiche, die den Systemen zukamen. Folgende Systeme sind entstanden und bis zum heutigen Tage im Einsatz: Parallele Systeme, Verteilte Systeme, Personal-Computer-Systeme, Time-Sharing-Systeme, Real-Time-Systeme und in neuester Zeit auch die so genannten Handheld-Systeme.

Im PC-Bereich sind derzeit die meistgenutzten Betriebssysteme die verschiedenen Varianten von Microsoft Windows, Apple Mac OS X, Linux (GNU-Lizenz), ZETA, OS/2 bzw. eComStation, DOS (Novell-DOS, MS-DOS) mit GUIs wie zum Beispiel PC/GEOS sowie BSD-Unix. F√ľr spezielle Anwendungen (Beispiel: industrielle Steuerung) werden auch experimentelle Betriebssysteme f√ľr Forschungs- und Lehrzwecke eingesetzt.

Neben den klassischen Varianten gibt es noch spezielle Betriebssysteme f√ľr verteilte Systeme, bei denen zwischen dem logischen System und den physikalischen System(en) unterschieden wird. Der logische Rechner besteht aus mehreren physikalischen Rechnereinheiten. Viele Gro√ürechner, Number-Cruncher und die legend√§ren Systeme aus dem Hause Cray arbeiten nach diesem Prinzip. Eines der bekanntesten Betriebssysteme im Bereich verteilte Systeme ist Amoeba.

Siehe auch: Liste von Betriebssystemen

Aufgaben

Zu den Aufgaben eines Betriebssystems gehören meist:

  • Speicherverwaltung
    • Zuweisung und √úberwachung des Betriebsmittels Speicher (Haupt- und Hintergrundspeicher).
    • F√ľhrung von Tabellen der Speicherbelegung durch Benutzerjobs bzw. Prozesse (laufende Programme).
    • Bedienung von Anforderungen und Freigabe von Speicher.
  • Programm-(Prozess)-Verwaltung
    • Betreuung s√§mtlicher Prozesse (im Ablauf befindlicher Programme) im Rechnersystem.
    • Erzeugung von neuen Prozessen auf Anforderung des Betriebssystems bzw. anderer existierender Prozesse,
    • Entfernung von Prozessen aus dem System.
    • Kommunikation und Synchronisation von Prozessen untereinander (Interprozesskommunikation)
  • Ger√§te- und Dateiverwaltung
    • Effiziente Zuweisung von Ein-/Ausgabeger√§ten und Vermittlungseinheiten (Datenkan√§le, Steuereinheiten), Vermeidung von Konflikten
    • Initiierung, √úberwachung der Ausf√ľhrung, Terminierung von Ein-/Ausgabevorg√§ngen.
    • Verwaltung des Dateisystems. Erzeugung eines Namensraums mit zugeh√∂rigen Speicherobjekten und gegebenenfalls weiteren Objekten.
  • Rechteverwaltung. Voneinander unabh√§ngige Benutzer/Programme d√ľrfen sich gegenseitig nicht st√∂ren.
  • Abstraktion
    • Verbergen der Komplexit√§t der Maschine vor dem Anwender
    • Abstraktion des Maschinenbegriffes (nach Coy):
      • Reale Maschine = Zentraleinheit + Ger√§te (Hardware)
      • Abstrakte Maschine = Reale Maschine + Betriebssystem
      • Benutzermaschine = Abstrakte Maschine + Anwendungsprogramm

Als Ger√§t aus der Sicht eines Betriebssystems bezeichnet man aus historischen Gr√ľnden alles, was √ľber Ein-/Ausgabekan√§le angesprochen wird. Dies sind nicht nur Ger√§te im herk√∂mmlichen Sinn, sondern mittlerweile auch interne Erweiterungen wie Grafikkarten, Netzwerkkarten und anderes. Die (Unter-)Programme zur Initialisierung und Ansteuerung dieser ‚ÄěGer√§te‚Äú bezeichnet man zusammenfassend als Ger√§tetreiber.

Betriebsmittelverwaltung und Abstraktion

Als Betriebsmittel oder Ressourcen bezeichnet man alle von der Hardware eines Computers zur Verf√ľgung gestellten Komponenten, also den Prozessor (bei Mehrprozessorsystemen die Prozessoren), den physikalischen Speicher und alle Ger√§te wie Festplatten-, Disketten- und CD-ROM-Laufwerke, Netzwerk- und Schnittstellenadapter und andere. Die Hardware Compatibility List enth√§lt alle Hardware-Produkte, die im Zusammenhang mit einem bestimmten Betriebssystem auf ihre Funktionalit√§t hin getestet wurden.

Einf√ľhrendes Beispiel: Zeitgeberbausteine

Moderne Rechnersysteme besitzen Zeitgeberbausteine (Timer). In fr√ľhen PCs wurde z. B. der Baustein 8284 der Firma Intel eingesetzt. Dieser Baustein muss zun√§chst initialisiert werden. Er kann dann nach Ablauf einer Zeitspanne oder periodisch den Prozessor unterbrechen und ihn zur Abarbeitung einer eigenen Routine veranlassen. Neben der Initialisierung ist eine Unterbrechungsroutine zu erstellen, deren Aufruf in einer daf√ľr geeigneten Sprache (meist Assembler) programmiert werden muss. Da Unterbrechungen asynchron auftreten, sind komplexe Verh√§ltnisse hinsichtlich der Datenstrukturen zu ber√ľcksichtigen. Genaue Kenntnisse des Bausteins (Datenblatt), der Computerhardware (Unterbrechungsbehandlung) und des Prozessors sind erforderlich. Die einzelnen Komponenten, die an diesem Prozess beteiligt sind, fasst man unter dem Begriff Rechnerarchitektur zusammen.

Virtuelle Prozessoren

Ein modernes Mehrprogrammbetriebssystem verwendet einen solchen Zeitgeberbaustein, um den normalerweise einzigen Prozessor periodisch (normalerweise im Millisekundenbereich) zu unterbrechen und eventuell mit einem anderen Programm fortzufahren (so genanntes pr√§emptives Multitasking). Die Initialisierung und die Unterbrechungsroutine werden dabei vom Betriebssystem implementiert. Auch wenn nur ein einzelner Prozessor zur Verf√ľgung steht, k√∂nnen mehrere Programme ausgef√ľhrt werden, jedes Programm erh√§lt einen Teil der Prozessorzeit (Scheduling). Jedes Programm verh√§lt sich, bis auf die verlangsamte Ausf√ľhrungszeit, so, als h√§tte es einen eigenen virtuellen Prozessor.

Virtuelle Zeitgeber

√úber einen Systemruf, zum Beispiel alarm, wird jedem Programm dar√ľber hinaus ein eigener virtueller Zeitgeber zur Verf√ľgung gestellt. Das Betriebssystem z√§hlt die Unterbrechungen des Original-Zeitgebers und informiert Programme, die den alarm-Systemruf verwendeten. Die einzelnen Zeitpunkte werden √ľber eine Warteschlange verwaltet.

Abstraktion

Die Hardware des Zeitgebers ist damit vor den Programmen verborgen. Ein System mit Speicherschutz erlaubt den Zugriff auf den Zeitgeberbaustein nur √ľber den Kernel und nur √ľber exakt definierte Schnittstellen (meist Systemrufe genannt, die √ľber spezielle Prozessorbefehle wie TRAP, BRK, INT realisiert werden). Kein Programm kann somit das System gef√§hrden, die Verwendung des virtuellen Zeitgebers ist einfach und portabel. Der Anwender oder Programmierer braucht sich nicht um die (komplexen) Details zu k√ľmmern.

Virtualisierung weiterer Betriebsmittel

So wie Prozessoren und Zeitgeber virtualisiert werden, ist dies auch f√ľr alle anderen Betriebsmittel m√∂glich. Dabei werden einige Abstraktionen teilweise nur als Software implementiert, andere erfordern spezielle Hardware.

Dateisysteme

Über Dateisysteme werden die Details der externen Speichersysteme (Festplatten-, Disketten- oder CD-ROM-Laufwerke) verborgen. Dateinamen und Verzeichnisse erlauben den bequemen Zugriff, die eigentlich vorhandene Blockstruktur und die Geräteunterschiede sind vollkommen unsichtbar.

Interner Speicher

Der interne Speicher (RAM) wird in Bl√∂cke (Kacheln) aufgeteilt und den entsprechenden Programmen zur Verf√ľgung gestellt. √úber virtuellen Speicher wird bei vielen Systemen jedem Programm ein kontinuierlicher (zusammenh√§ngender) Bereich zur Verf√ľgung gestellt. Dieser Speicher ist physikalisch nicht zusammenh√§ngend, es k√∂nnen sogar unbenutzte Teile auf den externen Speicher ausgelagert sein. Der virtuelle Speicher eines Programms kann sogar gr√∂√üer als der reale Speicher sein.

Netzwerk

Die Details der Netzwerkzugriffe werden verborgen, indem auf die eigentliche Hardware (Netzwerkkarte) ein Protokollstapel aufgesetzt wird. Die Netzwerksoftware erlaubt beliebig viele virtuelle Kanäle. Auf der Ebene der Sockets (Programmierung) ist die Netzwerkkarte vollkommen unsichtbar, das Netzwerk hat viele neue Fähigkeiten (bidirektionale, zuverlässige Datenströme, Adressierung, Routing) bekommen.

Bildschirm

Als Grafische Benutzeroberfl√§che (GUI, Abk. f√ľr engl. Graphical User Interface) wird generell eine Bildschirmausgabe beschrieben, wenn sie √ľber eine Eingabeaufforderung hinausgeht. Mit den richtigen Grafikkarten und Bildschirmen ist die Darstellung von geometrischen Objekten (Linien, Kreisen, Ellipsen, aber auch Schriftattributen und Farben) auf dem Bildschirm m√∂glich, aus denen sich komplexere geometrische Elemente wie Kn√∂pfe, Men√ľs, etc. Benutzeroberfl√§chen zum einfachen Steuern von Programmen erstellen lassen.

Die Grafikkarte als Hardware ist f√ľr den Programmierer und Anwender vollkommen verborgen.

Geschichte und Beispiele der Betriebsmittelverwaltung

Erste Betriebssysteme (bis 1980)

Maurice Vincent Wilkes

Die ersten Rechner besa√üen keine Betriebssysteme. Dies lag einerseits an deren Bauweise (mechanische Rechenmaschinen wie Abacus, Rechenschieber usw.) oder an ihrem stark eingeschr√§nkten Einsatzgebiet (Mark I, ENIAC, Colossus). Mit der Erfindung und dem Einsatz des Transistors (1947) und der Erfindung der Mikroprogrammierung 1955 durch Maurice Wilkes wurden in der Folge nicht mehr Einzelmaschinen, sondern ganze Modellreihen eingesetzt. Jeder Hersteller lieferte zu dieser Zeit sogar f√ľr verschiedene Modellreihen seiner Produkte verschiedene Betriebssysteme, so dass Programme nur auf einer bestimmten Modellreihe liefen und weder zwischen verschiedenen Computern noch √ľber verschiedene Generationen portierbar waren. Mit der Einf√ľhrung der Modellreihe System/360 von IBM f√ľhrte IBM 1964 das Betriebssystem OS/360 ein. Es war das erste Betriebssystem, das modellreihen√ľbergreifend eingesetzt wurde. Ab 1963 wurde Multics in Zusammenarbeit von MIT, General Electric und den Bell Labs von AT&T entwickelt, das jedoch erst ab 1969 bis 2000 im Einsatz war. Multics wurde in PL/I programmiert. Inspiriert von den Arbeiten an Multics startete eine Gruppe um Ken Thompson und Dennis Ritchie an den Bell Laboratories von AT&T 1969 mit der Entwicklung von Unix. Unix wurde in den Jahren 1972‚Äď1974 bis auf wenige Teile in der h√∂heren Programmiersprache C mit dem Ziel der Portabilit√§t neu implementiert. Zu dieser Zeit war auch das Betriebssystem CP/M weit verbreitet.

Der C64, ein Heimcomputer der 1980er Jahre

C64C-System mit VC1541-II-Diskettenlaufwerk und 1084S RGB-Monitor (1986)

In den 1980er Jahren wurden Heimcomputer popul√§r. Diese konnten neben n√ľtzlichen Aufgaben auch Spiele ausf√ľhren. Die Hardware bestand aus einem 8-Bit-Prozessor mit bis zu 64 KiB RAM, einer Tastatur und einem Monitor- bzw. HF-Ausgang. Einer der popul√§rsten dieser Computer war der Commodore C64 mit dem Mikroprozessor 6510 (einer Variante des 6502). Dieser Computer hatte ein 8 KiB-ROM-BIOS, das die Ger√§te Bildschirm, Tastatur, serielle IEC-Schnittstelle f√ľr Diskettenlaufwerke bzw. Drucker, Kassetteninterface initialisierte und √ľber ein Kanalkonzept teilweise abstrahierte. √úber ein 8 KiB-ROM-BASIC, das auf die Funktionen des BIOS aufsetzte, konnte das System bedient und programmiert werden. Das Betriebssystem dieses Computers kann auf der Ebene des BASIC-Interpreters als gute Hardwareabstraktion angesehen werden. Nat√ľrlich sind weder Kernel, Speicher- oder sonstiger Hardwareschutz vorhanden. Viele Programme, vor allem auch Spiele, setzten sich √ľber das BIOS hinweg und griffen direkt auf entsprechende Hardware zu.

Basic Programm Maschinensprachenprogramm
8k ROM BASIC PRINT#,FOR
8k ROM-BIOS (Gerätetreiber) JSR Maschinensprachenprogramm
Hardware (Prozessor(en), Speicher, Geräte)

Abstraktionsschichten im Betriebssystem des Heimcomputers C64

Die grafische Benutzeroberfläche (GUI) von Apple

Beispiel f√ľr eine grafische Benutzeroberfl√§che

Xerox entwickelte im Palo Alto Research Center (PARC) das Smalltalk-Entwicklungssystem (Xerox entwickelte mit ALTO (1973) und Star (1981) erste Rechner mit grafischer Benutzeroberfläche). Die Firma Apple bot Xerox an, die Technologie zu kaufen; da PARC aber vor allem ein Forschungszentrum war, bestand kein Interesse an Verkauf und Vermarktung. Nachdem Apple-Chef Steve Jobs Xerox Aktienanteile von Apple anbot, wurde ihm erlaubt, einigen Apple-Entwicklern die Xerox-Demos zu zeigen. Danach war den Apple-Entwicklern auf jeden Fall klar, dass der grafischen Benutzeroberfläche die Zukunft gehörte, und Apple begann, eine eigene GUI zu entwickeln.

Viele Merkmale und Prinzipien jeder modernen grafischen Benutzeroberfl√§che f√ľr Computer, wie wir sie heute kennen, sind originale Apple-Entwicklungen (Pull-down-Men√ľs, die Schreibtischmetapher, Drag and Drop, Doppelklicken). Die Behauptung, Apple habe seine GUI von Xerox ‚Äěabgekupfert‚Äú ist ein st√§ndiger Streitpunkt; es existieren jedoch gravierende Unterschiede zwischen einem Alto von Xerox und der Lisa/dem Macintosh).

Der Mac-OS-Nachfolger

Apple-I-Computer

Mitte der 1990er Jahre steckte Apple in einer tiefen Krise; die Firma schien kurz vor dem Ruin. Ein dringliches Problem war dabei, dass Apples Betriebssystem als veraltet betrachtet wurde und Apple sich 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 verwendungsf√§higen Nachfolger f√ľr das eigene Betriebssystem zu halten. Zuerst wurde vermutet, dass Apple die Firma Be Incorporated, 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 Amelio versprochen hatte, bis zur Macworld Expo im Januar 1997 die zuk√ľnftige Strategie in Bezug auf Mac OS zu verk√ľnden, musste schnell eine Alternative gefunden werden. √úberraschend √ľbernahm Apple dann noch im Dezember 1996 die Firma NeXT des Apple-Gr√ľnders Steve Jobs und deren Betriebssystem NeXTStep/OPENSTEP f√ľr 400 Millionen US-Dollar. Dieses sollte die Grundlage f√ľr die nachfolgende Generation des Apple-Betriebssystems werden. Das den neuen Erfordernissen angepasste und optisch aktualisierte NeXTStep wurde dann unter dem Namen Mac OS X ein gro√üer Erfolg. Mit der √úbernahme von NeXT zog bei Apple auch eine neue Firmenkultur ein. Steve Jobs, in den 1980ern von der von ihm mitgegr√ľndeten Firma vergrault, nun Chief Executive Officer (CEO) von NeXT, wurde 1997 wieder Firmenchef von Apple. Avie Tevanian, auch ein NeXT-Mitarbeiter, √ľbernahm die Entwicklungsabteilung. Jobs beendete die Lizenzierung des Betriebssystems an andere Hersteller (z. B. Power Computing) und stellte die Produktion des Newton ein.

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, das 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 Firmen 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 keinen f√ľr alle Zwecke ausreichenden Abstraktionsgrad 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 zwangsl√§ufig √ľber das Betriebssystem hinweg und schrieben z. B. direkt in den Bildschirmspeicher. MS-DOS wurde mit einem Satz von Programmen (so genannten 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

Microsoft Windows

Screenshot des Microsoft-Betriebssystems Windows 7, welches auf der Struktur von Windows NT basiert

1983 begann die Firma Microsoft mit der Entwicklung eines grafikf√§higen Betriebssystemaufsatzes f√ľr MS-DOS namens Windows ‚Äď es handelte sich dabei jedoch nicht um ein Betriebssystem. 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 (Microsoft war zwischen 1987 und 1991 an der Entwicklung beteiligt): Windows NT 3.1 (Juli 1993). F√ľr den Consumer-Markt brachte Microsoft am 15. August 1995 Windows 95 heraus, es basiert auf MS-DOS. Dieser ‚ÄěConsumer-Zweig‚Äú wurde mit der Ver√∂ffentlichung von Windows Millennium (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 Kernmodule 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 so genannte 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 und Windows 7 bauen auf der Struktur von Windows NT auf.

Linux (GNU/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 etc.).

Anwenderprogramme (vi, sh, openoffice) User Mode
Complex Libraries (glib, kde) Anwenderprogramme
Complex Libraries (glib, kde) Simple Libraries sin, opendbm Anwenderprogramme
C-Library 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

Siehe auch

Quellenangaben

  1. ‚ÜĎ Andrew S. Tanenbaum: Moderne Betriebssysteme. Hanser Verlag, ISBN 3-446-15573-2
  2. ‚ÜĎ Anthony Ralston, Edwin D. Reilly: Encyclopaedia of Computer Science. New York: Van Nostrand Reinhold 3. Auflage 1993, ISBN 0-442-27679-6
  3. ‚ÜĎ N.N.: Duden Informatik A-Z. Fachlexikon f√ľr Studium, Ausbildung und Beruf, Mannheim: Bibliographisches Institut & F. A. Brockhaus 4. Aufl. 2006, ISBN 3-411-05234-1

Literatur

Weblinks

 Commons: Screenshots by operating system ‚Äď Sammlung von Bildern, Videos und Audiodateien
Wiktionary Wiktionary: Betriebssystem ‚Äď Bedeutungserkl√§rungen, Wortherkunft, Synonyme, √úbersetzungen

Wikimedia Foundation.

Synonyme:

Schlagen Sie auch in anderen W√∂rterb√ľchern nach:

  • Betriebssystem ‚ÄĒ Betriebssystem ‚Ķ   Deutsch W√∂rterbuch

  • Betriebssystem ‚ÄĒ (method or system of working; mode d exploitation; sistema di esercizio), der Inbegriff der leitenden Grunds√§tze, nach denen Betrieb und Verkehr einer Eisenbahn eingerichtet und geleitet werden. Im engeren Sinne des Wortes denkt man hierbei nur… ‚Ķ   Enzyklop√§die des Eisenbahnwesens

  • Betriebssystem ‚ÄĒ operating system (engl.); OS (fachsprachlich) * * * Be|triebs|sys|tem ‚Ć©n. 11; EDV‚Ć™ Sammlung von Programmen zur √úbersetzung u. Bearbeitung der Benutzerprogramme sowie zur Steuerung u. Verwaltung der Bestandteile eines EDV Systems * * *… ‚Ķ   Universal-Lexikon

  • Betriebssystem ‚ÄĒ operacinńó sistema statusas T sritis automatika atitikmenys: angl. operating system vok. Betriebssystem, n rus. –ĺ–Ņ–Ķ—Ä–į—Ü–ł–ĺ–Ĺ–Ĺ–į—Ź —Ā–ł—Ā—ā–Ķ–ľ–į, f pranc. syst√®me d op√©rationnel, m ‚Ķ   Automatikos terminŇ≥ Ňĺodynas

  • Betriebssystem ‚ÄĒ Sammlung von englischen Befehlen in einem 240 seitigem Handbuch, die Sie alle eingeben m√ľssen, damit der Computer morgens √ľberhaupt aufsteht : ) ‚Ķ   Acronyms

  • Betriebssystem ‚ÄĒ Be¬∑triebs¬∑sys¬∑tem das; EDV; ein Programm, das ein Computer braucht, um √ľberhaupt arbeiten und andere Programme bearbeiten zu k√∂nnen ‚Ķ   Langenscheidt Gro√üw√∂rterbuch Deutsch als Fremdsprache

  • Betriebssystem (BS) ‚ÄĒ Sammelbegriff f√ľr Programme (‚á° Systemprogramme), die den Betrieb eines Computers erst m√∂glich machen; auch als Operating System (OS) bezeichnet. Sie steuern und √ľberwachen das Zusammenspiel der Hardwarekomponenten im Rahmen der Auftrags , Daten ‚Ķ   Lexikon der Economics

  • Betriebssystem ‚ÄĒ Sammlung von englischen Befehlen in einem 240 seitigem Handbuch, die Sie alle eingeben m√ľssen, damit der Computer morgens √ľberhaupt aufsteht : ) ‚Ķ   Acronyms von A bis Z

  • Betriebssystem ‚ÄĒ Be|triebs|sys|tem (EDV) ‚Ķ   Die deutsche Rechtschreibung

  • Betriebssystem 2000 ‚ÄĒ Betriebssystem 2000, ¬† BS2000 ‚Ķ   Universal-Lexikon


Share the article and excerpts

Direct link
… Do a right-click on the link above
and select ‚ÄúCopy Link‚ÄĚ

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.