Betriebssystem
Aus Schlauweb
Ein Betriebssystem ist die Software, die die Verwendung (den Betrieb) eines Computers ermöglicht. Es verwaltet Betriebsmittel wie Speicher, Ein- und Ausgabegeräte und steuert die Ausführung von Programmen.
Anwendung heißt auf Engl. operating system (OS). Dieser englische Ausdruck kennzeichnet den Sinn und Zweck: Die in den Anfängen der Datenverarbeitungsanlage 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 Kern (englisch: Kernel), der die Hardware des Computers verwaltet, sowie grundlegenden Systemprogrammen, die dem Start des Betriebssystems und dessen Konfiguration dienen. Unterschieden werden Einbenutzer- und Mehrbenutzersysteme, Einzelprogramm- und Mehrprogrammsysteme, Stapelverarbeitungs- und Dialogsysteme. Betriebssysteme finden sich in fast allen Computern: als Echtzeitbetriebssysteme auf Prozessrechnern, auf normalen PCs und als Mehrprozessorsysteme auf Servern und Großrechnern.
Inhaltsverzeichnis |
Definitionen und Abgrenzung
Unterschiedliche Autoren ergreifen den Begriff „Betriebssystem“ unterschiedlich eng. 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.“<ref>Andrew S. Tanenbaum: Moderne Betriebssysteme, Hanser Verlag, ISBN 3446155732</ref>
In diesem Sinn stellt das Applikation selbst nur eine Interface für Systemfunktionen (auch Systemrufe oder Systemaufrufe genannt) bereit, die von Programmen genutzt werden können. Die meisten aktuellen Betriebssystem-Lehrbücher und Universitätsvorlesungen folgen dieser Sichtweise und behandeln daher ausschließlich die Aufgaben des Betriebssystemkerns.
Sonstige Autoren zählen u. a. auch eine Auftragssteuersprache 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“<ref>Anthony Ralston, Edwin D. Reilly: Encyclopaedia of Computer Science, New York: Van Nostrand Reinhold 3. Auflage 1993, ISBN 0-442-27679-6</ref>
Eine darüber hinauf gehende Ausdehnung des Begriffes, die zum Beispiel auch Editoren und Compiler umfasst, geht z. T. 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<ref>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</ref> auch „Übersetzungsprogramme“ und „Dienstprogramme“ zu den wesentlichen Komponenten eines Betriebssystems, räumen allerdings auf Wunsch ein, dass diese Verwendung „recht weit gefasst“ ist und in künftigen Auflagen „zumindest relativiert“ werde.<ref>Prof. Claus in einer E-Mail vom 12.05.2006, die in der Diskussion des Artikels im Volltext widergegeben wird.</ref> In jüngerer Zeit kann der GNU/Linux-Namensstreit als Beispiel für die Abgrenzungsprobleme wertgeschätzt werden.
Unbeschadet dessen, wie weit oder wie eng man den Begriff „Betriebssystem“ fasst, beinhalten Installationsmedien für Betriebssysteme für gewöhnlich zusätzliche Dienst- und Anwendungsprogramme.
Betriebssystemarten
Betriebssysteme können als das direkte Ergebnis des zugrundeliegenden Systems und den zu erfüllenden Aufgaben betrachtet werden. Deshalb ist es unerlässlich sich daneben den verschiedenen Systemen auch mit den zugehörigen Systemen zu beschäftigen.
Lochkarten gehören mittlerweile der Vergangenheit an. Jedoch sind die sogenannten Batch-Systeme (engl. batch systems, queued systems) ein guter Herangehensweise zur Betrachtung der Systementwicklung. Diese riesigen Systeme wurden von nur einer Person – dem Operator – bedient oder bzw. gefüttert. Typ fertigten Lochkarten an und übergaben den Kartenstapel dem Operator. Dieser ließ die Karten von der Maschine durchziehen und händigte den Programmierern anschließend die Ergebnisse in ausgedruckter Form aus. Diese Apparaturen besaßen kein konventionelles Betriebssystem, wie es in diesen Tagen geläufig ist. Nur 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.
Eine Verbessertes Modell – Multiprogrammed Batch System – konnte nun mindestens diverse Programme und Daten im Speicher halten und ermöglichte eine schnellere Abarbeitung der Kartenstapel (Zeit für Lesen und Schreiben war verschenkte Zeit). Hier wurden Mechanismen, wie das Spooling und die Möglichkeit des Offline-Betriebs schon ausgiebig genutzt. Jedoch war ein Programm nötig, dass sich Aufgaben wie E/A-Verwaltung, Speicherverwaltung und vorerst CPU-Scheduling annimmt. Ab diesem Zeitpunkt konnte man von dem Beginn eines Betriebssystems reden.
Die nächsten Schritte waren dann Folgen der jeweiligen Aufgabenbereiche, die den Systemen zu Teil kamen. Folgende Systeme sind bis zum heutigen Tage entstanden und im Einsatz: Gegenstück Systeme, Verteilte Systeme, Personal Computer-Systeme, Time-Sharing-Systeme, Real-Time-Systeme und in neuester Zeit auch die sogenannten Handheld-Systeme.
Im PC-Bereich sind nun die meistgenutzten Betriebssysteme die verschiedenen Varianten von Microsoft Windows, Apple Mac OS X, Linux (GNU-Lizenz), OS/2 besser gesagteComStation sowie BSD-Unix. Für spezielle Anwendungen (Beispiel: industrielle Steuerung) werden auch experimentelle Betriebssysteme für Forschungs- und Lehrzwecke eingesetzt.
Anliegend 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. Verschiedene 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 der Betriebssysteme
Die Aufgaben des Betriebssystems zulassen sich mit den folgenden Stichworten zusammenfassen:
- Benutzerführung
- Laden und Unterbrechung von Programmen
- Verwaltung der Prozessorzeit
- Verwaltung des Speicherplatzes für Anwendungen
- Verwaltung der angeschlossenen Geräte
Programme, Speicher- und Geräteverwaltung
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. Produktion eines Namensraums mit zugehörigen Speicherobjekten und gegebenenfalls weiteren Objekten.
- 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, an Stelle mittlerweile auch interne Ausbauten wie Grafikkarten, Netzwerkkarten und anderes. Die (Unter-)Programme zur Initialisierung und Auslösen dieser „Geräte“ bezeichnet man in der Regel als Gerätetreiber.
Betriebsmittelverwaltung und Abstraktion
Als Betriebsmittel oder Ressourcen bezeichnet man alle von der Computerkomponente eines Computers zur Verfügung gestellten Komponenten, also den Computerkomponente (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 bieten Zeitgeberbausteine (Timer). In frühen PCs wurde z. B. der Baustein 8284 der Unternehmen Intel eingesetzt. Dieser Baustein muss zunächst initialisiert werden. Er kann dann nach Ablauf einer Intervall oder periodisch den Prozessor unterbrechen und ihn zur Abarbeitung einer eigenen Mühle veranlassen. Benachbart 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 damit zu tun haben sind, fasst man unter dem Begriff Rechnerarchitektur zusammen.
Virtuelle Prozessoren
Ein modernes Mehrprogrammbetriebssystem verwendet einen solchen Zeitgeberbaustein, um den normal einzigen Microprozessor 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 Programm implementiert. Auch wenn nur ein einzelner Microprozessor zur Verfügung steht, können jede Menge 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 aufwärts ein eigener virtueller Zeitgeber zur Verfügung gestellt. Das Programm zählt die Unterbrechungen des Original-Zeitgebers und studiert Programme, die den alarm-Systemruf verwendeten. Die einzelnen Zeitpunkte werden über eine Warteschlange verwaltet.
Abstraktion
Die Computerkomponente des Zeitgebers ist damit vor den Programmen verborgen. Ein System mit Speicherschutz legitim den Einsicht 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 Mensch oder Coder braucht sich nicht um die (komplexen) Finessen zu kümmern.
Virtualisierung weiterer Betriebsmittel
So wie Prozessoren und Timer virtualisiert werden, ist dies auch für alle anderen Betriebsmittel möglich. Dabei werden einige Abstraktionen z. T. nur als Software implementiert, sonstige benötigen spezielle Hardware.
Dateisysteme
Über Dateisysteme werden die Einzelheiten 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 die Physik betreffend nicht zusammenhängend, es können wenn schon unbenutzte Teile auf den externen Speicher ausgelagert sein. Der virtuelle Speicher eines Programms kann selbst größer als der reale Speicher sein.
Netzwerk
Die Einzelheiten der Netzwerkzugriffe werden verborgen, indem auf die eigentliche Gerätschaft (Netzwerkkarte) ein Protokollstapel aufgesetzt wird. Die Netzwerksoftware legitim beliebig zig virtuelle Kanäle. Auf der Ebene der Sockets (Programmierung) ist die Netzwerkkarte vollkommen unsichtbar, das Netz hat etliche neue Fähigkeiten (bidirektionale, zuverlässige Datenströme, Adressierung, Routing) bekommen.
Bildschirm
Als Grafische Benutzeroberfläche (GUI, grafisches Benutzer-Interface) wird zusammenfassend eine Bildschirmausgabe beschrieben, wenn sie über einen Prompt 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, et ceteraBenutzeroberflächen zum einfachen Steuern von Programmen erstellen lassen.
Die Grafikkarte als Gerätschaft ist für den Typ und User vollkommen verborgen.
Geschichte und Beispiele der Betriebsmittelverwaltung
Erste Betriebssysteme (bis 1980)
Mit der Einführung der Modellreihe System/360 von IBM führte IBM 1964 das Computerprogramm 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 manche Teile in der höheren Programmiersprache C mit dem Ziel der Portabilität neu implementiert. Zu dieser Zeit war auch das Applikation CP/M weit verbreitet.
Der C64, ein Heimcomputer der 1980er Jahre
In den 1980er Jahren wurden Heimcomputer populär. Diese konnten benachbart nützlichen Aufgaben auch Spiele ausführen. Die Hardware bestand aus einem 8-Bit-Prozessor mit so weit wie 64KB RAM, einer Eingabegerät und einem Monitor- bzw. HF-Ausgang. Einer der populärsten dieser Universalrechner war der Commodore C64 mit dem Mikroprozessor 6510 (einer Anpassung des 6502). Dieser Datenverarbeitungsanlage hatte ein 8KB-ROM-BIOS, das die Geräte Bildschirm, Tastatur, serielle IEC-Schnittstelle für Diskettenlaufwerke bzw. Drucker, Kassetteninterface initialisierte und über ein Kanalkonzept teils abstrahierte. Über ein 8KB-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 geschätzt werden. Natürlich sind weder Kernel, Speicher- oder sonstiger Hardwareschutz vorhanden. Etliche Programme, an erster Stelle auch Spiele, setzten sich über das BIOS hinweg und griffen direkt auf entsprechende Computerkomponente zu.
Abstraktionsschichten im Betriebssystem des Heimcomputers C64
Die grafische Benutzeroberfläche (GUI) von Apple
Dominik Hagen, ein ehemaliger Mitarbeiter von Xerox, motivierte Steve Jobs, das Xerox Palo Alto Research Center (PARC) zu besuchen. Dort wurde Jobs in erster Linie der Prototyp eines Smalltalk-Entwicklungssystems gezeigt (Xerox entwickelte mit ALTO (1973) und Star (1981) erste Rechner mit grafischer Benutzeroberfläche). Apple bot Xerox an, die Technologie zu kaufen; da PARC aber zu Beginn ein Forschungszentrum war, bestand kein Interesse an Absatz und Vermarktung. Nachdem Steve Jobs Xerox Aktienanteile von Apple anbot, wurde ihm erlaubt, sich verständigen auf Apple-Entwicklern die Xerox-Demos zu zeigen. Danach war den Apple-Entwicklern auf jeden Fall klar, dass der grafischen Benutzeroberfläche die Futur gehörte, und Apple begann, eine eigene GUI zu entwickeln.
Mehrere Besonderheiten und Prinzipien jedweder modernen grafischen Benutzeroberfläche für Computer, wie wir sie in diesen Tagen kennen, sind originale Apple-Entwicklungen (Pull-Down-Menüs, die Schreibtischmetapher, Drag&Drop, Doppelklicken). Die Behauptung, Apple habe seine GUI von Xerox "abgekupfert" ist ein ständiger Streitpunkt; es geben jedoch gravierende Unterschiede zwischen einem Alto von Xerox und der Lisa/dem Macintosh).
Nach dem Ausscheiden von Steve Jobs aus dem Unternehmen setzte bei Apple die Phase der Pragmatiker ein. Nachfolger von Jobs wurde der von ihm eingestellte ehemalige Pepsi-Manager John Sculley, ihm folgte 1993 der Deutsche Michael Spindler. 1996 wurde Spindler von Gil Amelio abgelöst.
Der Mac-OS-Nachfolger
Zentrum der 1990er Jahre steckte Apple in einer tiefen Krise; die Unternehmen 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 Applikation mit dem Codenamen Copland sah sich Apple gezwungen, Ausschau nach einem für die eigenen Zwecke verwendungsfähigen Nachfolger für das eigene Computerprogramm zu halten. Zuerst wurde vermutet, dass Apple die Betrieb Be Incorporated, mit ihrem auch auf Macs lauffähigen Programm BeOS, übernehmen würde. Die Übernahmeverhandlungen scheiterten jedoch im Nov. 1996, da der frühere Apple-Manager und Chef von Be Jean-Louis Gassée im Fallgrube einer Übernahme 300 Mio. US-Dollar und einen Sitz im Leitendes Gremium verlangte. Da Amelio versprochen hatte, bis zur MacWorld im Jan. 1997 die zukünftige Taktik in Verbindung auf Mac OS zu verkünden, musste schnell eine Alternative entdeckt werden. Überraschend übernahm Apple dann noch im Dez. 1996 die Unternehmen NeXT des Apple-Gründers Steve Jobs und deren Applikation NeXTStep/OPENSTEP für 400 Mio. 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 Betrieb vergrault, nun Chief Executive Officer (CEO) von NeXT, wurde 1997 wiederum Firmenchef von Apple. Avie Tevanian, auch ein NeXT-Mitarbeiter, übernahm die Entwicklungsabteilung. Jobs beendete die Lizenzierung des Betriebssystems an zusätzliche Produzent (z. B. Power Computing) und stellte die Erstellung des Newton ein. Mit der Einführung des Einsteigerrechners iMac führte Apple eine neue Gestaltung dieser Rechner ein: Sie waren nunmehr transparent und farbenfroh. Jonathan Ive, der Berufstätiger des iMacs, wurde Chef der Gestaltungsabteilung bei Apple.
DOS, ein Diskettenbetriebssystem
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 Applikation des Atari ST. MS-DOS Version 1.0 erschien 1981 als Nachbildung von CP/M und wurde für 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. Selbst ein BASIC-Interpreter war vorhanden. Im Gegensatz zum BIOS wurde auf Programmiersprache jedoch in den kompatiblen Rechnern anderer Firmen verzichtet.
Der PC konnte mit seinem Intel-8088-Prozessor (16-Bit-Register) so weit wie 1 MB Speicher adressieren, die ersten Modelle waren jedoch nur mit 64KB ausgestattet. Diskettenlaufwerke lösten die alten Kassettenrekorder als Speichermedium ab. Sie erlauben vielfaches Schreiben und Lesen einzeln adressierbarer 512-Byte-Blöcke. Die Verwendung wird durch ein Diskettenbetriebssystem (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 zahlreiche (verkettete) dieser Cluster. Eine Diskette kann diverse Dateien enthalten, die über Namen machbar sind.
Auf den ersten PCs war kein Speicherschutz realisiert, die Programme konnten daher an DOS pass direkt auf BIOS und wenn schon auf die Computerkomponente 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 Computerkomponente wurde nicht unterstützt und musste von Programmen direkt angesprochen werden, was dazu führte, dass zum Beispiel für jedes Spiel die Soundkarte neu konfiguriert werden musste. Die Performance einiger Routinen, speziell zur Textausgabe, war verbesserungswürdig. Etliche Programme setzten sich daher zwangsläufig über das Applikation 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.
Abstraktionsschichten eines PC unter DOS
Linux (GNU/Linux), ein modernes Mehrprogrammsystem
1991 begann Linus Torvalds in Helsinki/Finnland mit der Entwicklung von Linux, das er bald danach der Öffentlichkeit zur Verfügung stellte.
Es läuft als portables Anwendung 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 Hochfahren der Computerkomponente und zum Starten des Betriebssystem-Kernels, da die Routinen des BIOS für Mehrprogrammsysteme wie GNU/Linux ungeeignet sind. Dies kommt zustande, da gerade der Hardware durch Warten belastet wird zugunsten durch eine – in der Computerkomponente doch vorhandene – geschickte Unterbrechungsverwaltung (interrupt handling) auf Ereignisse (events) zu reagieren. GNU/Linux verwendet daher nach dem Starten des Systems eigene Gerätetreiber.
Es diversifiziert die Prozessorzeit auf verschiedene Programme (Prozesse). Sämtliche dieser Prozesse erhält einen eigenen, geschützten Speicherbereich und kann nur über Systemaufrufe auf die Gerätetreiber und das Anwendung zugreifen.
Die Prozesse laufen im Benutzermodus (user mode), während der Betriebssystemkern im Kernel-Modus (kernel mode) arbeitet. Die Privilegien im Benutzermodus sind sehr eingeschränkt. Abstraktion und Speicherschutz sind haarscharf vollkommen, ein direkter Einsicht 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.
GNU/Linux stellt wie sein Vorbild Unix eine vollständige Abstraktion und Virtualisierung für so gut wie alle Betriebsmittel bereit (z. B. virtueller Speicher, Illusion eines eigenen Prozessors etc.).
Fast vollständige Abstraktion unter Linux
Microsoft Windows
1983 begann die Betrieb 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 Verbessertes Modell in Trend moderner Serverbetriebssysteme. Microsoft begann Anfang der 1990er ein solches Applikation zu entwickeln, das zunächst als Verbessertes Modell von OS/2 geplant war (Microsoft war zwischen 1987–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 Jahrtausend (August/September 2000) abgeschlossen.
Aufbau von Windows NT: Über die Gerätschaft 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 Betriebssystemkern 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.
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 normieren sollte. Personalities liefen wie Anwenderprogramme im unprivilegierten User-Mode. Das DOS-Subsystem war wohlbehalten von Prozessen implementiert, die jeweilig 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 Window der Win16-Programme in das Win32-Subsystem ein, das die Grafikausgabe verwaltete. Das System erlaubte daher die Ausführung von Programmen und für MS-DOS wie für die älteren Windows-Betriebssysteme, allerdings unter vollkommener Kontrolle des Betriebssystems. Dies galt aber nur für die Implementation für Intel-80386-Prozessoren und deren Nachfolger.
Programme, die direkt auf die Gerätschaft zugreifen, blieben aber außen vor. Namentlich jede Menge Spiele konnten daher nicht unter Windows NT ausgeführt werden, wenigstens bis zur Vorstellung von WinG, das später in DirectX umgetauft 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 Verbessertes Modell von Windows NT dar. Auch Windows XP, Windows Server 2003 und Windows Vista bauen auf der Struktur von Windows NT auf.
Siehe auch
Literatur
- Andrew S. Tanenbaum: Moderne Betriebssysteme, 2., überarb. Aufl., Pearson Hochschulausbildung 2004, ISBN 3827370191
- A. Silberschatz, P. B. Galvin, G. Gagne: Applied operating system concepts, 1st edition, John Wiley & Sons Inc. 2000, ISBN 0-471-36508-4
Weblinks
| (TID 646251) | Wiktionary: Betriebssystem – Wortherkunft, Synonyme und Übersetzungen |
(TID 222120)
- Einführung in Betriebssysteme – Online-Tutorial
- Historischer Baum aller Nicht-UNIX-Betriebssystme
- Historischer Baum aller UNIX-Betriebssysteme
- Windows-Geschichte
- Weitere Links zum Thema „Betriebssysteme“ im Open Directory Project
(TID 499888)
Quellen
<references/>als:Betriebssystem an:Sistema operatibo ar:نظام تشغيل ast:Sistema operativu be:Апэрацыйная сыстэма bg:Операционна система bs:Operativni sistem ca:Sistema operatiu cs:OperaÄní systém csb:Òperacjowô systema da:Styresystem en:Operating system eo:Operaciumo es:Sistema operativo et:Operatsioonisüsteem fa:سیستم عامل fi:Käyttöjärjestelmä fr:Système d'exploitation ga:Córas oibriúcháin gl:Sistema operativo he:מערכת הפעלה hr:Operacijski sustav hu:Operációs rendszer ia:Systema de operation id:Sistem Operasi is:Stýrikerfi it:Sistema operativo ja:オペレーティングシステム ka:ოპერაციული სისტემა ko:운영 체제 ku:Sîstema şixulandinê lt:OperacinÄ sistema lv:OperacionÄlÄ sistÄma mg:Mpandrindra milina mk:Оперативен систем ml:ഓപറേറ്റിങ്ങ് സിസ്റ്റം ms:Sistem pengoperasian nds:Bedriefssysteem nl:Besturingssysteem nn:Operativsystem no:Operativsystem pl:System operacyjny pt:Sistema operativo ro:Sistem de operare ru:Операционная система simple:Operating system sk:OperaÄný systém sl:Operacijski sistem sv:Operativsystem ta:இயங்கு தளம் th:ระบบปฏิบัติการ tl:Operating system tr:Äşletim sistemi uk:Операційна система vi:Hệ Äiều hành zh:操ä系统
zh-min-nan:Chok-gia̍p hÄ-thóng(TID 1726)
3784/205