|
Architektur des Betriebssystems
Zur logischen Strukturierung wird das Betriebssystem normalerweise in mehrere
Schichten oder Schalen eingeteilt. Die unterste Schale beinhaltet alle hardwareabhängigen Teile des Betriebssystems, insbesondere auch die Verarbeitung von Interrupts. Auf diese Weise ist es möglich, das BS leicht an unterschiedliche Rechnerausstattungen anzupassen. Die nächste Schicht enthält die grundlegenden Ein-/Ausgabe-Dienste für Plattenspeicher und Peripheriegeräte. Die darauffolgende Schicht behandelt Kommunikations- und Netzwerkdienste, Dateien und Dateisysteme. Weitere Schichten können je nach Anforderung folgen. Ein Betriebssystem besitzt also drei oder mehrlogische Schichten.
Jede Schicht bildet eine abstrakte (virtuelle) Maschine, die mit ihren benachbarten
Schichten über wohldefinierte Schnittstellen kommuniziert. Sie kann Funktionen
der nächstniedrigeren Schicht aufrufen und ihrerseits Funktionen für die
nächsthöhere Schicht zur Verfügung stellen. Die Gesamtheit der von
einer Schicht angebotenen Funktionen wird auch als "Dienste" dieser Schicht bezeichnet.
Die Gesamtheit der Vorschriften, die bei der Nutzung der Dienste einzuhalten sind, wird
als "Protokoll" bezeichnet.
Die unterste Schicht setzt immer direkt auf der Rechner-Hardware auf. Sie verwaltet die
realen Betriebsmittel des Rechners und stellt stattdessen virtuelle
Betriebsmittel bereit. Oft wird diese Schicht als "BIOS" (Basic I/O-System)
bezeichnet. Alle weiteren Schichten sind von der Hardware unabhängig.
Durch jede Schicht wird eine zunehmende "Veredelung" der Hardware erreicht (z. B.
wachsende Abstraktion, wachsende Benutzerfreundlichkeit).
Die frühen Computer (Großrechner, "Mittlere Datentechnik") zeichneten sich
dadurch aus, dass Hardware und Betriebssystem vom gleichen Hersteller kamen und optimal
aufeinander abgestimmt waren. Bei den heutigen PCs ist dies nur noch beim Macintosh von
Apple der Fall. Bei Personal Computern auf Basis von Intel-Prozessoren kommen Hardware
und Betriebssystem von unterschiedlichen Herstellern, auch wenn das Betriebssystem
vielfach zusammen mit der Hardware ausgeliefert wird. So hat man die Wahl zwischen
Betriebssystemen von Microsoft (Windows 98/ME, Windows 2000, Windows XP, usw.) oder
freien UNIX-Implementierungen (Free BSD, Linux). Da Zusatz-Steckkarten und
Peripheriegeräte (Drucker, Scanner, usw.) von den verschiedensten Herstellern kommen,
liefern diese auch meist die Betiebssystem-Anpassung in Form von Treibern, die beim Laden
des Betriebssystems ("Bootstrap") mit eingebunden werden.
Durch die Programmierschnittstelle (API, Applications Programmers Interface) der höheren
Schichten wird auch vermieden, daß jeder Programmierer die grundlegenden Routinen
für den Zugriff auf Ein-/Ausgabegeräte und Massenspeicher selbst programmieren
muß. Das BS stellt also eine definierte Programmierschnittstelle zur Verfügung.
Änderungen am BS oder der Hardware wirken sich so nicht auf die Anwenderprogramme
aus, die nach wie vor über die gleichen Betriebssystem-Aufrufe die Dienste
des BS in Anspruch nehmen.
Bei Einzelbenutzer-Singletaskingsystemen können Anwenderprogramme die Schichtenstruktur
durchbrechen und z. B. direkt auf einer bestimmten Hardwarekomponente aufsetzen.
Bei Mehrbenutzer- oder Multitaskingsystemen ist dies nicht möglich, das hier
der Schutz der einzelnen Ressourcen (CPU, Platte, Ein-/Ausgabe, usw.) für jedes
Programm vor Beeinflussung durch andere Programme gewährleistet werden muß.
Hier ist eine streng hierarchische Kommunikation nötig, die nur zwischen zwei
benachbarten Schichten zulässig ist.
Bedenkt man, daß heutige Rechnersysteme sich selbst innerhalb einer Rechnerfamilie
vielfältig in Speicherausstattung, Art und Umfang der angeschlossenen Geräte
unterscheiden, so wird klar, daß die Erstellung monolithischer Programme
für jede mögliche Rechnerkonstellation ein praktisch undurchführbares
Unternehmen ist. Die Lösung dieses Problems heißt hier: Modularisierung.
Programme werden in Module zerlegt, die zueinander über definierte Schnittstellen
in Beziehung stehen. Somit ist es möglich, innerhalb eines Programmes einen Modul
durch einen anderen mit gleicher Schnittstelle zu ersetzen, um das Programm an eine andere
Rechnerkonstellation anzupassen. Die Auswahl und Zusammenstellung der allgemeingültigen
Module wird bestimmt durch die eingesetzte Hardware und die Art der Programme, die
durch diese Module unterstützt werden sollen. Sie ist für viele Programme, die auf
einem Rechner abgearbeitet werden sollen, gleich und unterscheiden sich wiederum
etwas von Rechner zu Rechner.
Oft taucht in Zusammenhang mit Betriebssystemen auch der Begriff "Middleware" auf. Er
bezeichnet zwischen den eigentlichen Anwendungen und der Betriebssystemebene angesiedelte
System- und Netzwerk-Dienste (z.B. Datenbank, Kommunikation, Protokollierung, Sicherheit).
Sie ist als Applikationsschicht eine Dienstleistungsschicht, die anstelle der Betriebssystemschnittstelle verwendet wird. Middleware-Systeme ermöglichen die Verteilung
von Applikationen auf mehrere Rechner im Netzwerk. Die Verteilung ist objektorientiert:
Server exportieren ihre Dienste als Klassenschnittstellen, Clients benutzen entfernten Methodenaufruf zum Zugriff auf die Dienste. Die Bindung kann statisch oder dynamisch
erfolgen.
|
|
|