Nachdem ich mich nun ausführlich mit der charakteristischen Rolle der Fachdidaktik Informatik beschäftigt habe, möchte ich meine Betrachtungen nun auf das Fachliche richten. Wie im Abschnitt 1.2.2.3 bereits dargelegt, lässt sich die inhaltliche Basis des Faches "Informatik" durch Fundamentale Ideen gut beschreiben. Eine dieser Säulen des Informatikunterrichts ist die Idee der "Strukturen". Elektronische Informationssysteme bzw. IT-Geräte sind stark geprägt durch abstrakte Strukturen, die ihnen zugrunde liegen. Auf der Ebene der Software ist es vor allem das Betriebssystem, in dem sich viele Strukturen wieder finden.
In diesem Kapitel möchte ich mich nun mit den wesentlichen Strukturen eines Betriebssystems auseinandersetzen. Beginnend mit einer theoretischen Betrachtung eines Betriebssystems, beschäftige ich mich im zweiten Teil dieses Kapitels mit dem Betriebssystem Windows. Auf den Aspekt der Bedienung eines konkreten Betriebssystems gehe ich in diesem Kapitel nicht genauer ein, da diesem Aspekt eine untergeordnete wissenschaftliche Bedeutung, zumindest aus Sicht der Informatik, zukommt.
Durch ein Betriebssystem können verschiedene Aufgaben in unterschiedlicher Weise gelöst werden. Im Verlauf der Entwicklung haben sich jedoch einige Schlüsselaufgaben herauskristallisiert, deren Lösung von fast jedem Betriebssystem unterstützt wird. Bevor ich allerdings in die Details der technischen Lösungsmöglichkeiten gehe, möchte ich auf den Begriff, die geschichtliche Entwicklung und die allgemeine Aufgabe eines Betriebssystems eingehen.
Stellt man die Frage "Was ist ein Betriebssystem?", kann man keine eindeutige Antwort erwarten. Die Bedeutung des Begriffs "Betriebssystem" ist ständigen Veränderungen unterworfen, da dieser eng mit der rasanten Entwicklung der Informationstechnologie verbunden ist. Um dennoch eine anfängliche Vorstellung von einem Betriebsystem zu erhalten, möchte ich in diesem ersten Abschnitt des Kapitels einige ausgewählte Definitionen vorstellen.
Ich beginne mit einer Definition aus der Brockhaus Enzyklopädie, da diese nicht aus dem "Bücherregal" der Informationstechnologie stammt und daher etwas "alltagstauglicher" ist:
Betriebssystem := "Die Software, die die Hardware eines Computers verwaltet und steuert und mit dem Bedarf der Anwendungssoftware koordiniert."[113]
Nüchterner und für den Laien schwieriger zu verstehen, ist die Definition nach der deutschen Norm DIN 44300:
Betriebssystem := "Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die Abwicklung von Programmen steuern und überwachen."[114]
Nun noch eine dritte Definition von Abraham Silberschatz, einem anerkannten Autor auf dem Gebiet der Betriebssysteme:
"An operating system is a program that manages the computer hardware. It also provides a basis for application programs and acts as an intermediary between the computer user and the computer hardware."[115]
Zusammenfassend kann man also sagen, dass ein Betriebssystem ein grundlegendes Programm ist, das die Hardware steuert, eine gemeinsame Basis für Anwendungsprogramme bietet und zwischen Hardware und Mensch vermittelt.
Was wäre die Entwicklung der Informationstechnologie ohne die Entwicklung der Betriebssysteme? Von eigens eingestellten Operateurinnen und Operateuren, die jeden Rechenjob persönlich annahmen und das Ergebnis wieder aushändigten, zu den heute eingesetzten grafischen Benutzeroberflächen für Jedermann und Jederfrau war eine Menge Entwicklungsarbeit nötig.
Mitte der 1950-Jahre waren so genannte Mainframes (Großrechner) im Einsatz, mit denen hauptsächlich mathematische Berechnungen durchgeführt wurden. Die Programmiererinnen[116] und Programmierer brachten ihr Programm in Maschinencode auf Papier, übertrugen den Code auf Lochkarten und übergaben diese einer Operateurin oder einem Operateur, die oder der Zugang zu Eingabegeräten des Mainframes hatte.[117] Zu dieser Zeit waren viele Operateurinnen und Operateure damit beschäftigt, die Jobs der Programmiererinnen und Programmierer zu managen und die Ergebnisse nach Berechnung durch den Mainframe per Ausdruck wieder zurückzugeben. Später wurde die Stapelverarbeitung mit Magnetbändern eingeführt, um die Effizienz der Ein- bzw. Ausgabe der Daten zu verbessern.
Mitte der 1960er-Jahre wurden die ersten Computer mit integrierten Schaltkreisen hergestellt und die ersten Betriebssysteme im Sinne eines eigenen Programms entstanden. Ein Betriebsystem übernahm nun die Aufgabe der Operateurinnen und Operateure, indem es die Jobs der Programmiererinnen und Programmierer möglichst effizient der Recheneinheit zuwies. Es stellte sich heraus, dass viel Zeit beim Warten der CPU[118] auf die Ein- und Ausgabe der Daten vergeudet wurde. Ein neues, viel versprechendes Konzept, das Timesharing[119] genannt wurde, ermöglichte einen direkten Zugang zum Rechner über ein Terminal[120]. Durch Timesharing muss die Zentraleinheit des Rechners (CPU) nicht mehr auf die Ein- und Ausgabe der Daten durch die Programmiererinnen und Programmierer warten, sondern kann in der Zwischenzeit andere, schon bereite Jobs bearbeiten. Man hatte nun über das Terminal einen Online-Zugang zum Rechner und dadurch eine wesentlich schnellere Antwortzeit, die nun im Sekundenbereich lag. Eines dieser neuen Betriebssysteme, das größere Verbreitung fand, war MULTICS[121], aus dem später UNIX[122] entstand.[123] Mit einem MULTICS-System waren bis zu mehrere hundert Programmiererinnen und Programmierer über Telefonleitungen per Terminal verbunden, die sich so die Rechnerzeit sehr effizient teilen konnten.
Anfang der 1980er-Jahre konnten durch die Entwicklung der LSI-Schaltungen[124] erstmals Personal Computer (PC), also Computer, die einer einzigen Benutzerin oder einem einzigen Benutzer voll zur Verfügung standen, hergestellt werden. Eines der ersten Betriebssysteme, das auf einem 8080-Intel-Prozessor lief und von Gary Kildall programmiert wurde, hieß CP/M[125]. Weitaus größeren Erfolg hatte ein Betriebssystem, das zusammen mit IBM PCs[126] verkauft wurde und den Namen MS-DOS erhielt.[127] Dazu aber mehr im nächsten Abschnitt.
Bisher wurden alle Computer, ob PC oder in Verbindung mit einem Terminal, per Kommandoeingabe mit der Tastatur bedient. Auf den Bildschirmen waren nur Texte zu sehen. Eine wesentliche Wende auf dem Weg zu einem benutzerfreundlicheren Betriebssystem war die Erfindung der grafischen Benutzeroberfläche (GUI) durch Doug Engelbert.[128] Zum kommerziellen Erfolg wurde dieses Konzept erst durch Steve Jobs, der es für seinen Apple Macintosh[129] übernahm. Auch das Unternehmen Microsoft, das das Betriebssystem MS-DOS entwickelte, wurde auf das Konzept der GUI aufmerksam und begann mit der Entwicklung von Windows, dessen Nachfolger Windows XP, Windows Vista und Windows 7 heute auf einem Großteil aller PCs laufen.
Nachdem ich nun den geschichtlichen Aspekt beleuchtet habe, möchte ich übergehen zur Frage nach der Aufgabe von Betriebssystemen und deren Klassifizierung.
Ich möchte zu Beginn die Frage stellen, welche Aufgaben ein Betriebssystem erfüllen soll, also wozu es überhaupt gebraucht wird.[130] Aus der Sicht der Benutzerin bzw. des Benutzers (Top-Down) stellt das Betriebsystem eine Abstraktion der Hardware dar. Benutzerinnen und Benutzer wollen ihre Aufgaben möglichst effizient erledigen und sich nicht um technische Details des Rechners kümmern. Diese sollten der Benutzerin bzw. dem Benutzer möglichst verborgen bleiben. Ebenso möchten Programmiererinnen und Programmierer nicht für jedes Programm "das Rad neu erfinden". Es gibt viele Funktionen, die immer wieder benötigt werden, wie beispielsweise der Zugriff auf eine Datei auf der Festplatte oder die Zuweisung von Speicher. In beiden Fällen erledigt das Betriebssystem die Detailaufgaben und bietet der Benutzerin bzw. dem Benutzer und der Programmiererin bzw. dem Programmierer eine komfortable Schnittstelle auf hohem Niveau.
Der Hardware (Bottom-Up) stellt das Betriebssystem wichtige Verwaltungsfunktionen zur Verfügung, ohne die der Betrieb dergleichen nicht reibungslos funktionieren würde. Sendeten beispielsweise mehrere Programme Druckaufträge, und leitete das Betriebssystem sie nicht der Reihe nach zum Drucker weiter, würden alle Druckaufträge gemischt ausgedruckt werden. Das Betriebssystem verhindert dies, indem es die Druckaufträge von den Programmen annimmt und nach der Reihe zum Drucker sendet.
...