Erste Betriebssysteme (bis 1980)
Maurice Vincent WilkesDie ersten Rechner besaßen keine Betriebssysteme. Dies lag einerseits in 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 Computer 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/1 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
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 64KB RAM, einer Tastatur und einem Monitor- bzw. HF-Ausgang. Einer der populärsten dieser Computer war der Commodore C64 mit dem Mikroprozessor 6510. Dieser Computer 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 teilweise 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 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.
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 vor allem 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 vor allem ein Forschungszentrum war, bestand kein Interesse an Verkauf und Vermarktung. Nachdem 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&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).
Apple I ComputerNach 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
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 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. Mit der Einführung des Einsteigerrechners iMac führte Apple eine neue Gestaltung dieser Rechner ein: Sie waren fortan transparent und farbenfroh. Jonathan Ive, der Gestalter 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 Betriebssystem 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. 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 MB Speicher adressieren, die ersten Modelle waren jedoch nur mit 64KB ausgestattet. Diskettenlaufwerke lösten die alten Kassettenrekorder als Speichermedium ab. Diese erlauben vielfaches Schreiben und Lesen einzeln adressierbarer 512-Byte-Blöcke. Die Benutzung 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 mehrere (verkettete) dieser 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.
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 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 Betriebssystem-Kernels, da die Routinen des BIOS für Mehrprogrammsysteme 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. Abstraktion und Speicherschutz sind nahezu vollkommen, 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 so 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.).
MS Windows
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-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.
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 dessen 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 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 Weiterentwicklung von Windows NT dar. Auch Windows XP, Windows Server 2003 und Windows Vista bauen auf der Struktur von Windows NT auf.
|