|
|
(27 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| Ein Kernel (Betriebssystemkern), ist der zentrale Bestandteil eines Betriebssystems
| | #WEITERLEITUNG [[Betriebssystem/Kernel]] |
| In ihm ist die Prozess- und Datenorganisation festgelegt, auf der alle weiteren Softwarebestandteile des Betriebssystems aufbauen
| |
| Er bildet die unterste Softwareschicht des Systems und hat direkten Zugriff auf die Hardware
| |
| ==Bestandteile==
| |
| Ein Kernel (abhängig von der Struktur) ist in Schichten aufgeteilt, wobei die unteren Schichten die Basis für die darüber liegenden bilden
| |
| Die oberen Schichten können Funktionen der unteren Schichten aufrufen, aber nicht umgekehrt
| |
| Diese Schichten sind vorhanden (von unten nach oben):
| |
| *Schnittstelle zur Hardware (Geräte, Speicher, Prozessoren)
| |
| *Speicherverwaltung (evtl. einschließlich virtuellem Hauptspeicher)
| |
| *Prozessverwaltung (auch Scheduler genannt)
| |
| *Geräteverwaltung (auch Device Management genannt)
| |
| *Dateisysteme
| |
| ==Die Kernelstrukturen im Vergleich==
| |
| *Wenn alle Module im Kernel selbst integriert sind, spricht man von einem monolithischen Kernel
| |
| *Bei einem Mikrokernel finden nur wesentliche Bestandteile in getrennten Prozessen statt
| |
| *Eine Zwischenstufe ist der Hybridkernel, bei dem eine Teilmenge der Funktionen Teil des Kernels und der Rest ausgelagert ist
| |
| *Der selten benutzte Exokernel, beschränkt sich darauf, die Hardware zwischen den Prozessen aufzuteilen, alle weiteren Schritte werden den Prozessen selbst überlassen<br>
| |
| *Der Kernel selbst läuft im sogenannten Kernel-Mode zusammen mit Gerätetreibern und anderen hardwarenahen Anwendungen
| |
| *Der Kernel ist vom Kernel-Mode zu unterscheiden denn nicht jede Anwendung ist auch Teil des Kernels
| |
| **Neben dem eigentlichen Kernel laufen noch andere Anwendungen im Kernel-Mode, z. B. die Hardware Abstraction Layer
| |
| ==Aufgaben eines Betriebssystem-Kernel==
| |
| *Schnittstelle zu Anwenderprogrammen (Starten, Beenden, Ein-/Ausgabe, Speicherzugriff)
| |
| *Kontrolle des Zugriffs auf Prozessor, Geräte, Speicher (Scheduler, Gerätetreiber, Speicherschutz). Möglichst alleiniger Zugriff des Kernels auf diese Ressourcen.
| |
| *Verteilung der Ressourcen wie zum Beispiel der Prozessorzeit bzw. der Prozessoren auf die Anwenderprogramme.
| |
| *Strukturierung der Ressourcen, etwa Abbildung von Dateisystemen auf blockorientierte Geräte wie Festplattenlaufwerke, Netzwerkstack auf Netzwerkkarten.
| |
| *Auflösung von Zugriffskonflikten, etwa Verriegelung bei Mehrprozessorsystemen, Warteschlangen bei knappen Ressourcen.
| |
| *Virtualisierung der Ressourcen (Prozessor: Prozesse, Festplatte: Dateien, Netzwerkkarte: z. B. Sockets, Speicher: virtueller Speicher, Geräte: Spezialdateien).
| |
| *Überwachung von Zugriffsrechten auf Dateien und Geräte bei Mehrbenutzersystemen.
| |