Betriebssysteme (englisch: Operating Systems) haben die Aufgabe, den Computer grundsätzlich auf den Einsatz von Software vorzubereiten. Das bedeutet: Das Betriebssystem macht zunächst einmal nichts, wofür sich ein Anwender interessieren würde – es enthält keine Textverarbeitung, kein Grafikprogramm und nicht mal einen Dateimanager. Was es stattdessen macht, ist Ressourcen zu erkennen, zu aktivieren, zu verwalten und Anwender darauf zugreifen zu lassen.
Frühe Betriebssysteme, wie etwa CP/M und MS-DOS, waren im Wesentlichen leicht verbesserte Programmlader: Mit ihnen konnte der Anwender eine Anwendung von Kassette, Diskette oder auch Festplatte starten, welche dann die volle Kontrolle über den gesamten Computer übernahm. Seit es Multitasking gibt, also die Möglichkeit, mehrere Programme gleichzeitig auszuführen, ist die Situation schwieriger geworden: Was tun, wenn mehrere Programme zum selben Zeitpunkt ein Dokument ausdrucken wollen? Wenn der Hauptspeicher nicht ausreicht, um die Programme und die zugehörigen Daten komplett im RAM zu halten?
Beim Parallelbetrieb mehrerer Anwendungen gibt es immer einen "Kampf um die Ressourcen", z. B. hätten die meisten Programme gern möglichst viel Rechenzeit, um ihre Aufgabe schnell zu erledigen. Ein veralteter Ansatz war das kooperative Multitasking: Damit konnte man (z. B. unter Windows 3.x) mehrere Programme parallel in Fenstern laufen lassen, aber wenn eines der beteiligten Programme die CPU nicht freiwillig abgab (sich also unkooperativ verhielt), dann froren die übrigen Programme ein. Dasselbe Problem ergab sich beim Absturz einer Anwendung – Stillstand des gesamten Systems. Moderne Betriebssysteme arbeiten darum mit nicht-kooperativem Multitasking und lassen jedes Programm immer nur wenige Sekundenbruchteile arbeiten, bevor sie es gewaltsam unterbrechen und die CPU einer anderen Anwendung zur Verfügung stellen. Welches Programm dabei wie oft und wie lange zum Zug kommt, ist eine Feineinstellungsfrage und Sache des so genannten Schedulers – einer wichtigen Komponente jedes modernen Betriebssystems.
Dass Sie eine grafische Oberfläche auf dem Monitor sehen und nutzen können, fällt nur teilweise in den Verantwortungsbereich des Betriebssystems. Die Grafikkarte als Hardwarekomponente wird prinzipiell vom Betriebssystem verwaltet, es verhindert z. B., dass beliebigige Benutzer gleichzeitig Daten via Grafikkarte an den Bildschirm schicken (oder dort sichtbare Inhalte auslesen) können. Fenster darzustellen und Mausaktionen der Benutzer auszuwerten, ist aber keine ursprüngliche Aufgabe für ein Betriebssystem. Bei Windows verschwimmen die Grenzen, denn seit der "NT-Schiene" (Windows NT, XP, Vista, 7) wirkt die Oberfläche dort fest in das System integriert, während Anwender ganz alter Versionen (Windows 3, 95, 98, Me) zunächst MS-DOS (das Betriebssystem) und dann die grafische Oberfläche (Windows) starten mussten. Es herrscht auch Uneinigkeit darüber, welche Teile als zentrale Elemente des Betriebssystems anzusehen sind. Erscheint nach dem Booten von Linux die KDE- oder Gnome-Oberfläche, sind schon drei aufeinander aufbauende Komponenten aktiv: Das Betriebssystem erkennt die Grafikkarte, später startet der so genannte X-Server, der eigene Treiber für verschiedene Grafikkarten mitbringt. Er muss aber Funktionen des Betriebssystems nutzen, um mit der Grafikkarte zu sprechen. Der X-Server kann auch schon Fenster erzeugen, aber diese haben noch keine Fensterrahmen und lassen sich auch nicht "anfassen" (also z. B. verschieben oder vergrößern). Erst der Window Manager (ein Teil von KDE oder von Gnome) malt dann Fensterrahmen um die Fenster des X-Servers herum.
Um deutlicher zu machen, wovon man gerade spricht, verwendet man oft den Begriff "Kernel" oder "Betriebssystem-Kernel", der das eigentliche Betriebssystem bezeichnet. Einen Kernel gibt es sowohl unter Windows als auch unter Linux. Der Linux-Kernel liegt im Verzeichnis /boot/ und ist nicht besonders groß, z. B. knapp 4 MByte unter aktuellen Linux-Versionen. Er enthält die Kernfunktionen des Systems, kümmert sich also darum, die gefundene Hardware in Betrieb zu nehmen. Die lange Liste der Startmeldungen, die ein Linux-System beim Booten erzeugt und die über den Start diverser Dienste (Netzwerk, Firewall, grafischer Anmeldemanager etc.) informiert, gehört schon in den Bereich der Anwendungen.
Eine der wichtigsten Aufgaben des Betriebssystems ist es, den Parallelbetrieb mehrerer Anwendungen zu erlauben. Dazu kennen Betriebssysteme das Konzept der Prozesse. Ein Prozess ist ein Programm, das in den Hauptspeicher geladen wurde und nun ausgeführt werden kann. Starten Sie eine Anwendung gleich doppelt, entstehen zwei unabhängige Prozesse – obwohl es sich um dasselbe Programm handelt. Das gilt jedenfalls für die meisten Anwendungen (siehe Kasten Zwei Fenster, ein Prozess), manche Programme verhindern das aber.
Verschiedene Prozesse trennt das Betriebssystem penibel, so hat etwa jeder Prozess seinen eigenen Speicher und kann nicht die Speicherbereiche auslesen oder verändern, die anderen Prozessen gehören. Die Zuordnung vom physikalischen Hauptspeicher zu den Prozessen ist dabei höchst variabel: Über einen Mechanismus namens Paging teilt das Betriebssystem den Hauptspeicher in viele kleine Speicherseiten auf und verteilt diese je nach Bedarf an die laufenden Prozesse. Benötigen alle laufenden Programme zusammen mehr Speicher als es überhaupt im RAM gibt, lagert das System einzelne Seiten auch auf die Festplatte (in die Swap-Partition, die eigentlich Paging-Partition heißen müsste) aus. Unter Windows funktioniert das genauso, nur gibt es dort eine Swap- oder Paging-Datei anstelle einer separaten Partition für diesen Zweck.
Zwei Fenster, ein Prozess
Wenn Sie zwei Fenster einer Anwendung auf dem Bildschirm sehen, muss das nicht bedeuten, dass zwei Prozesse aktiv sind. Öffnen Sie etwa in Firefox mit [Strg]+[N] ein neues Fenster, gehört es zum selben Prozess wie das schon vorher vorhandene Fenster. Aus der Zahl der Fenster kann man also in keiner Weise auf die Zahl der Prozesse schließen, zumal es viele Anwendungen gibt, die im Hintergrund laufen und gar kein Fenster öffnen – etwa alle so genannten Daemon-Prozesse (Server oder – in Windows-Sprache – Dienste).
Auch der Versuch, ein bereits laufendes Programm zu starten, führt nicht immer zu dem erwarteten Ergebnis. Firefox verwendet z. B. ein Startskript, das prüft, ob Firefox bereits läuft: Wenn ja, schickt es nur eine Nachricht an den vorhandenen Firefox-Prozess, die ihm mitteilt, dass er ein neues Fenster öffnen oder eine weitere Webseite laden soll. Sie können also in einer Shell zehnmal firefox & eingeben, und dennoch läuft nur ein einziger Firefox-Prozess.
Mehr Informationen bietet der recht kurze Wikipedia-Artikel [1] zu Betriebssystemen, der allerdings auf einige weitere Beiträge (etwa zu Dateisystemen) verlinkt. Wer es ganz genau wissen möchte und viel Zeit mitbringt, kann sich die Audiomitschnitte und Folien der Vorlesung "Betriebssysteme" [2] anschauen und anhören (insgesamt knapp 23 Stunden Material). Was beim Booten von Linux passiert (wie also das Betriebssystem überhaupt in Gang kommt), lesen Sie in einem älteren EasyLinux-Artikel auf unserer Webseite [3].
Computer Bild spricht eine eigene Sprache
Die Computerzeitschrift Computer Bild hat sich leider dafür entschieden, für diverse Fachbegriffe aus der PC-Welt eigene Wortschöpfungen zu verwenden, so darf dort etwa ein Browser nicht Browser heißen, sondern "Internetzugangsprogramm", und Betriebssysteme nennt der Marktführer unter den Einsteigermagazinen "Betriebsprogramme" (Abbildung 1). Wer das Heft regelmäßig liest, findet noch weitere Kreationen, etwa "überspielen" statt "herunterladen".
Das Ziel der irreführenden und falschen Wortwahl ist wohl, die Leserschaft der PC-Einsteiger nicht mit komplizierten Fachbegriffen zu überfordern: Das ist grundsätzlich lobenswert – nur leider ist es nicht hilfreich, denn die auf diese Weise falsch orientierten Leser begeben sich mit ihrem Spezialvokabular im Internet auf Google-Suche und werden dann nicht fündig. Immerhin hat Wikipedia den Begriff "Betriebsprogramm" erfasst und leitet beim Suchen nach diesem Kunstwort kommentarlos zur Seite über Betriebssysteme weiter. Dort taucht der falsche Name dann aber nicht mehr auf.
Glossar
Ressourcen
Eine Ressource ist – ganz allgemein – etwas, das man benutzen kann. Im Computer sind das z. B. Arbeitsspeicher (RAM) und Festplatte, auch der Prozessor (die CPU) selbst ist eine Ressource. Im Englischen bezeichnet man sogar das Personal einer Firma als deren "humane Ressourcen" (human resources, HR). Für Betriebssystem-Ressourcen ist auch der deutsche Begriff "Betriebsmittel" üblich.
Infos
[1] Wikipedia-Artikel: http://de.wikipedia.org/wiki/Betriebssystem
[2] Vorlesungsunterlagen: Hans-Georg Eßer, "Betriebssysteme", Hochschule München, http://hm.hgesser.de/bs-ss2009/folien/
[3] Artikel zum Systemstart: Carsten Schnober, "Systemstart", EasyLinux 03/2005, S. 52 ff., http://www.easylinux.de/2005/03/052-boot/