MarinComics Home

3. Der Nexus aller Wirklichkeiten: das Betriebssystem

« Zum vorigen Kapitel | Zum Inhaltsverzeichnis | Zum nächsten Kapitel »

“We are stuck with technology when what we really want is just stuff that works.”
Douglas Adams, “The Salmon of Doubt”

Bevor wir uns im Detail ansehen, was am “klassischen” Mac OS so unzulänglich ist und wieso Mac OS X eine unendlich modernere Grundlage bildet, möchte ich untersuchen, wozu ein Computer überhaupt ein Betriebssystem benötigt und was dieses heutzutage leisten sollte.

Naturgesetze aus Nullen und Einsen

Der Science fiction-Autor und Technologie-Kommentator Neal Stephenson schrieb in seinem Essay “In the Beginning was... the Command Line” (dt. Neal Stephenson: “Die Diktatur des schönen Scheins”, 2002) kokett:

“Betriebssysteme sind nicht zwingend notwendig. Es gibt keinen Grund, warum ein hinreichend begabter Codierer nicht bei jedem Projekt ganz vorne anfangen und neuen Code schreiben sollte, um so grundlegende maschinenorientierte Operationen wie die Steuerung der Lese-/Schreibeköpfe auf den Plattenlaufwerken und das Beleuchten von Pixels auf dem Bildschirm auszuführen. Die allerersten Computer mussten noch so programmiert werden. Weil aber nahezu jedes Programm dieselben Basisoperationen verlangt, würde dieser Ansatz ohne weiteres zu einer Verdoppelung des Arbeitsaufwands führen. Nichts geht einem Hacker mehr gegen den Strich als die Verdoppelung des Arbeitsaufwands.”

Stephenson stellt in seinem Text zwar die prinzipielle Unvermeidlichkeit des Betriebssystems im Gebrauch von Rechnern infrage, gleichzeitig zählt er genau ihre grundlegenden Funktionen auf.

Computer sind ohne ihrem Betriebssystem auf sämtliche Anweisungen von außen (somit vom Programmierer) angewiesen - ganz gleich, wie primitiv und selbstverständlich diese sein mögen. Der Rechner erkennt nicht, welche Peripheriegeräte an ihn angeschlossen sind. Ohne dem Betriebssystem und den darauf aufbauenden Gerätetreibern kann ein Computer weder Bildschirm, noch Tastatur, Maus oder Festplatte erkennen und ansprechen.

Die sinngebende Schnittstelle

In vielen Fällen kann sich ein PC nicht einmal selbst erkennen d.h. die Troika aus Recheneinheit (Prozessor), Arbeitsspeicher (RAM) und Schnittstellencontroller (für Bildschirm, Tastatur und Maus) tappst in der virtuellen Finsternis, ohne den anderen jemals zu finden oder ansprechen zu können. Erst das Betriebssystem beantwortet die existenziellen Fragen frei nach Kant (Immanuel Kant: "Kritik der Urteilskraft", 1781):

Eine Agarplatte im Computer

Weniger pathetisch ausgedrückt: das Betriebssystem bildet die Schnittstelle zwischen der Hardware, der Software und dem Anwender. Es zeichnet verantwortlich für die Verwaltung und Koordination von Aufgaben und die sinnvolle Verteilung der eigenen Rechen- und Speicher-Ressourcen (Harvey M. Deitel, Paul Deitel, David Choffnes: “Operating Systems”, 3. Auflage, 2004).

Zudem fungiert das Betriebssystem als Host (zugleich Wirt und Betreiber) für Anwendungsprogramme, die auf dem Computer laufen. In seiner Rolle als Wirt kümmert es sich um die Details im Ansprechen der Hardware. Dies nimmt der installierten Software die Aufgabe ab, sich selbst um diese Details kümmern zu müssen. Somit wird Programmierern durch eigene API des Betriebssystems die Softwareentwicklung erleichtert, weil sie sich auf die Kernaufgabe ihrer Anwendung konzentrieren können.

Über ihre API bieten Betriebssysteme Zugänge (Schnittstellen) zu ihren Services und Funktionen. Indem Anwendungen diese Schnittstellen aufrufen, können sie Dienste nutzen, Parameter an das OS weitergeben und vom Betriebssystem Ergebnisse einer Operation zurück erhalten (Avi Silberschatz, Peter Galvin, Greg Gagne: “Operating Systems Concepts”, 2008).

Leistungsfähige Betriebssysteme erleichtern es Entwicklern, komplexe Operationen möglichst einfach und flexibel durchzuführen. Dies ist nicht nur auf den Zugriff auf Dateioperationen oder Netzwerkdienste beschränkt, sondern reicht über die korrekte Darstellung von Schriften und Grafiken bis hin zu Videokompression und Dekompression.

Oberflächliche Betrachtungen

Von alledem merkt der gewöhnliche Anwender nicht viel. Die leistungsfähige Softwaremaschinerie verbirgt sich hinter einer heutzutage meist grafischen Benutzeroberfläche (GUI - Graphical User Interface), die dem Anwender einen einfachen und sogar freundlichen Zugang zu mächtigen Funktionen erlaubt.

Allerdings bieten auch heute noch Betriebssysteme fortgeschrittenen Anwendern eine Befehlszeilenschnittstelle (CLI - Command Line Interface). Wagen sich User auf diese Ebene herab, bekommen sie ein viel unmittelbareres Bild der Operationen.

Wenn die GUI Anwender wie Reisegäste auf einem Luxuskreuzer behandelt, die entspannt auf den Decks flanieren und die Ball- und Speiseräume aufsuchen, dann betreten sie mit der CLI den Maschinenraum, in dem laute Motorengeräusche und glosende Hitze die Anweisungsrufe der Maschinisten begleiten.

Auf Deck oder in der Kajüte können die Reisenden nur wenig falsch machen. Auf der systemnahen Ebene des Maschinenraums führt der unbedachte Schritt eines Unkundigen ins mögliche Verderben.

Deshalb abstrahieren Benutzeroberflächen komplexe Aufgaben wie die Partitionierung von Festplatten, die Installation von Anwendungen, das Brennen von DVDs, um Anwender zu leiten, ihnen zu helfen, damit sie sich auf den Kern ihrer gewünschten Aufgabe konzentrieren können.

Auf einer Benutzeroberfläche gedeihen User-Aufgaben wie Mikroorganismen auf der Oberfläche einer Petrischale.

Das Betriebssystem abstrahiert somit Operationen für Anwender und Entwickler. Es ist zugleich Bühne als auch Projektionsfläche. Gerade den Bühnenaspekt weiß Apple für sich gut zu nutzen.

Die Summe aller Teile

Es ist für Traditionalisten unter den Entwicklern durchaus umstritten, was tatsächlich zu den Grundbestandteilen des Betriebssystems gehört. So argumentieren sie völlig zurecht, dass die Benutzeroberfläche etwas derartig Systemfernes und sogar Austauschbares ist, dass sie durchaus als für ein Betriebssystem nicht immanenter Teil betrachtet werden kann.

Die momentane Situation in dem, was so leichtfertig als die “Wirklichkeit” bezeichnet wird16, zwingt uns zu einer differenzierten Sicht der Dinge.

Die gängigen kommerziellen Betriebssysteme wie Microsoft Windows und Mac OS X werden als umfangreiches Paket an Systemanwendungen, Sprachlokalisierungen, Treibern, Helferprogrammen sogar Webservern und natürlich ihrer komplexen, bunten grafischen Oberflächen ausgeliefert. Es liegt im Interesse von Apple und Microsoft, möglichst viel in ihr Betriebssystem hineinzupacken, um Anwendern und Entwicklern bereits von Haus aus eine reichhaltige Auswahl an Funktionen bereitzustellen.

In manchen Fällen wird dieses Verhalten gar nicht goutiert. Dies hat der Ärger gezeigt, den Microsoft in den 90er-Jahren durch die systemnahe Anbindung seines Webbrowsers Internet Explorer mit US-amerikanischen und europäischen Wettbewerbsbehörden hatte.

In anderen Fällen wird die Bereitstellung von nicht unbedingt systemimmanenter Software aber begrüßt, wie dies die Begeisterungsstürme um Apples systemnahe integration des eigenen Webbrowsers Safari und des Multimediapakets iLife17 zeigen.

Gleich wie man selbst dazu steht, ein System, das über einen großen Funktionsumfang verfügt, bietet Anwendern und Entwicklern ohne Umwege mehr Möglichkeiten, als eines, bei dem jede Zusatzfunktionalität gesondert installiert werden muss - auch wenn sie besser und leistungsfähiger wäre, als eine, die bereits integriert ist.

Auf dieser Front wurden bereits der eine oder andere ideologische Krieg geführt und werden auch in Zukunft noch viele geführt werden.

Architektur des modernen Betriebssystems

Es herrscht allerdings Einigkeit darüber, was ein modernes Betriebssystem können muss. Dieser Konsens ergibt sich aus der langen Tradition der historisch in der Industrie verwendeten Varianten des Leistungsfähigen Betriebssystems Unix.

Konsumentenbetriebssystems, also alles, was wir gar nicht zu sehen bekommen, aber sehr wohl “spüren”, werden meistens von den großen bewährten “Brüdern” wie Unix oder VMS18 in der Industrie übernommen.

Anhand der Literatur (Claudia Koch, Gregory Zäch: “Midas Macintosh Bibel”, 2000 sowie Avi Silberschatz, Peter Galvin, Greg Gagne: “Operating Systems Concepts”, 2008) lassen sich folgende Merkmale und Features zusammenstellen, über die ein modernes Betriebssystem verfügen sollte:

1. Präemptives Multitasking

Multitasking ist die Fähigkeit eines Betriebssystems, mehrere Dinge gleichzeitig erledigen zu können. Eine Anwendung kann im Hintergrund eine Grafik berechnen, während E-Mails abgerufen werden, ein Download durchgeführt wird und der Anwender dabei ein Spiel spielt. Geschickte Betriebssysteme versorgen alle Anwendungen mit Rechenzeit, damit sie ihre Aufgaben erfüllen können.

Moderne Betriebssysteme verfügen über präemptives Multitasking, dabei bestimmt das Betriebssystem, welche Anwendung wann Rechenleistung bekommt. Auf diese Weise lässt sich verhindern, dass einzelne Programme den Computer komplett übernehmen. Stürzt eines dieser Programme ab, dann laufen sowohl das Betriebssystem als auch die anderen Applikationen weiter, als sei nichts geschehen.

Mac OS Classic verfügt über kooperatives Multitasking. Bei dieser behelfsmäßigen Form des Multitaskings erhält eine Anwendung den alleinigen Zugriff auf die Rechenzeit des Computers. Das Programm muss bereits so programmiert sein, dass es diesen Zugriff auch anderen Anwendungen gewährt, damit diese ebenfalls Rechenzeit abbekommen. Das Betriebssystem leistet dabei wenig, denn die Programme müssen untereinander kooperieren. Tun sie es nicht, führt das zum Absturz, der das ganze System samt aller anderen Programme mitreißen kann.

2. Geschützte Speicherbereiche

Programme benötigen für die Ausübung ihrer Funktionen Stückchen des verfügbaren Arbeitsspeichers (RAM - Random Access Memory), um darin Programmcode und Daten abzulegen, die verarbeitet werden sollen. Es ist grundsätzlich alles in Ordnung, solange eine Applikation dabei nur auf den jeweils eigenen Speicherbereich zugreift. Sollte sie aber in den Bereich einer anderen Anwendung oder gar des Betriebssystems hineinschreiben, dann kann das zum Absturz des Computers führen. Ein modernes Betriebssystem verwaltet deshalb für jede Anwendung einen eigenen Speicherbereich, in welchem sie für sich existiert und den sie nicht verlassen kann. Tritt innerhalb eines Programms ein Fehler auf, dann sind andere Anwendungen und das Betriebssystem selbst davon nicht betroffen. Außerdem kann ein User amoklaufende Software mithilfe einer Betriebssystemfunktion jederzeit beenden, auch wenn sie nicht mehr angesprochen werden kann.

3. Multi-Prozessor-Unterstützung

Heutzutage werden die meisten PCs und alle Macs mit mehreren Prozessoren oder Prozessorkernen ausgeliefert, manche haben vier Prozessorkerne und einige sogar acht. Dies führt nur dann zu einem Leistungszuwachs (auch Skalierbarkeit genannt), wenn der weitere Prozessor auch ausgenützt wird, also nur wenn die Rechenlast vom Betriebssystem auf beide Recheneinheiten sinnvoll verteilt wird.

4. Intelligente Treiberverwaltung

Treiber werden vom Betriebssystem benötigt, um Geräte (z.B. Maus, Drucker usw.) am Computer betreiben zu können oder andere Komponenten (z.B. Grafikchip, Soundkarte usw.) ausnützen zu können. Wird der falsche Treiber für ein Gerät verwendet oder stellt sich dieser als fehlerhaft heraus, dann führt das wiederum zu Systemabstürzen. Es sei denn, man verwendet ein modernes Betriebssystem, das einzelne Treiber modular laden und auch deaktivieren kann.

5. Sicheres Dateisystem

Die großen Datenmengen, die heutzutage anfallen, erfordern immer ausgeklügeltere Speicherformen. Moderne Dateisysteme nützen Speichermedien effizienter und flexibler aus, denn je größer der Speicherplatz auf einem Medium ist, desto wahrscheinlicher können darauf einzelne Sektoren fehlerhaft sein. Mithilfe von geschickten Algorithmen zur Datenverwaltung können intelligente Dateisysteme erkennen, welche Daten ohne Fehler gespeichert sind.

Zudem können moderne Betriebssysteme die gespeicherten Daten indizieren, um so eine Suche im großen Datenaufkommen flexibler und schneller zu gestalten.

6. Modulare Architektur

Moderne Betriebssysteme sollten modular aufgebaut sein. Im Innersten arbeitet der Kernel, rund herum docken die anderen Module an, um Zusatzfunktionalitäten zu bringen. Idealerweise sollte ein Betriebsystem Module “on the fly” laden können, ohne jedes mal neu starten zu müssen.

7. Multiuser-Betrieb

Vernetzte Computer brauchen unterschiedliche User-Rollen mit unterschiedlichen Rechten. Nicht jeder, der an einem Computer arbeitet darf alles können oder benötigt dies überhaupt.

Moderne Betriebssysteme erlauben es Administrator-Usern Sicherheitsmechanismen einzurichten, dass bestimmte Nutzer nur bestimmte Dinge verändern zu dürfen.

Wenn ein Betriebssystem auch noch auf die Prinzipien der Object-Orientierten Programmierung aufbaut, dann zählt es zu den flexiblen und modernen Betriebssystemen (Avi Silberschatz, Peter Galvin, Greg Gagne: “Operating Systems Concepts”, 2008)

Mängel im System

In so ziemlich allen Punkten zeigt das klassische Mac OS Mängel. Es hat keine geschützten Speicherbereiche; verfügt über das veraltete kooperative Multitasking (das eigentlich sogar im Alltag bloßes Taskswitching ist); gaukelt dem User eine Multiuser-Fähigkeit vor, indem es für unterschiedliche User einfach unterschiedliche Desktops bereitstellt; das Dateisystem ist historisch gewachsen und Programme müssen sich selbst darum kümmern, ihre Rechenleistung auf mehrere Prozessoren zu verteilen. Einzig bei der Treiberverwaltung gab es einen kleinen Modernisierungsschub mit der Einführung der intelligenten USB-Treiber.

Im großen und ganzen trug Mac OS Classic so viele Altlasten mit sich, dass es langsam an der Zeit wurde, durch ein besseres System ersetzt zu werden.

Kapitelzusammenfassung

Das Betriebssystem ist die Schnittstelle zwischen Computerhardware, Software und dem Anwender. Zugleich ist es Schnittstelle für Programmierer, damit sie sich nicht mit grundlegenden Operationen beschäftigen müssen. Durch bereitgestellte API (Application Programming Interfaces) wird Entwicklern der Zugang zu Funktionen geboten, die vom Betriebssystem durchgeführt werden können.

Moderne Betriebssysteme sollten über folgende Merkmale verfügen:

Präemptives Multitasking, Geschützte Speicherverwaltung, Modernes Dateisystem, Modulare Architektur, Intelligente Treiberverwaltung, Multiuser-Unterstützung, Multi-Prozessor-Fähigkeit.

« Zum vorigen Kapitel | Zum Inhaltsverzeichnis | Zum nächsten Kapitel «

Separator line

Fußnoten (Kapitel 3):

16 Dafür ist eher der Ausdruck “geläufige Praxis” zutreffend. Zurück

17 Beinhaltet die Fotoverwaltungssoftware iPhoto, das Filmschnittprogramm iMovie, die Webdesignapplikation iWeb, die Musikverwaltungssoftware iTunes, das Kompositionsprogramm GarageBand und das DVD-Authoringpaket iDVDZurück

18 VMS ist der Name eines "high-end" Server-Betriebssystems, das auf VAX-, Alpha- und Itanium-Hardware läuft. Bis in die späten 80er-Jahre galt VMS als eines der leistungsfähigsten und zuverlässigsten Systeme in der Industrie. Zurück

Separator line

blog comments powered by Disqus
Weitersagen

In diesem Kapitel:

Valid HTML 4.01 Transitional Valid CSS!