Betriebssystem

Ein Betriebssystem ist ein Softwaresystem, das Hard- und Softwareressourcen kontrolliert und verwaltet. Es stellt eine  Schnittstelle (system calls) zur Verfügung, auf der Anwenderprogramme aufbauen können.

Betriebssysteme sind, wie andere grosse Softwaresysteme auch, in Komponenten aufgeteilt oder sollten in Komponenten aufgeteilt sein. Häufig sind folgende (logische) Komponenten vorhanden:

Prozessverwaltung,
Speicherverwaltung,
Dateiverwaltung,
Geräteverwaltung und
graphische Benutzeroberfläche.

Bezüglich der Aufteilung eines Betriebsystems in Komponenten sind verschiedene Architekturen zu beobachten: Monolithische Architektur, Schichtenarchitektur, Schalenmodell, virtuelle Maschinen und Client/Server Modell.

Das Schalenmodell entspricht der Schichtenarchitektur mit zusätzlichen Schutzmechanismen zwischen den Schichten. Die weiter innen liegenden Schalen besitzen mehr Privilegien als die äusseren Schalen.
 
Ein Vertreter des Architektur-Modells Virtuelle Maschinen ist das IBM Betriebssystem VM. VM besteht aus zwei Teilen. Der erste Teil, der virtual machine monitor, stellt das Multiprogramming zur Verfügung, in dem er das Vorhandensein mehrerer Rechner (inklusive aller Hardware-Register etc.) simuliert. Der zweite Teil verbirgt die vom virtual machine monitor simulierte Hardware unter einer einfacher zu programmierenden Schnittstelle.

Beim Client/Server-Modell werden die Fähigkeiten des Betriebssystem-Kerns stark reduziert (so genannter Microkernel). Beim Betriebssystem Mach enthält der Kern nur noch die Prozess- und Speicherverwaltung, ein Kommunikationsuntersystem sowie die I/O-Services. Weitere Betriebssystemfunktionalität wie z.B. die Dateiverwaltung wird durch Benutzerprozesse realisiert. Anwenderprogramme rufen Funktionen des Dateisystems auf, indem sie mittels des Kommunikationsuntersystems Mitteilungen mit dem Dateisystem-Prozess austauschen. Mittels des Client/Server-Modells können verteilte Betriebssysteme erstellt werden. Es kann dann z.B. der Dateisystem-Prozess auf einem entfernten Rechner ausgeführt werden. Die Mitteilungen zwischen Anwenderprogramm und Dateisystem-Prozess werden in diesem Fall nicht Kernel-intern sondern über eine Netzwerkverbindung vermittelt.