Kernel: Unterschied zwischen den Versionen
Zeile 11: | Zeile 11: | ||
==Die Kernelstrukturen== | ==Die Kernelstrukturen== | ||
monolithischer Kernel: | [[monolithischer Kernel]]: | ||
*Alle Module sind im Kernel selbst integriert | *Alle Module sind im Kernel selbst integriert | ||
Mikrokernel: | Mikrokernel: |
Version vom 12. Dezember 2019, 10:18 Uhr
Ein Kernel (Betriebssystemkern), ist der zentrale Bestandteil eines Betriebssystems 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.
- 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
- Alle Module sind im Kernel selbst integriert
Mikrokernel:
- Nur wesentliche Bestandteile integriert und finden in getrennten Prozessen statt
Hybridkernel:
- Eine Teilmenge der Funktionen sind Teil des Kernels und der Rest ist ausgelagert
Exokernel:
- Die Hardware wird zwischen den Prozessen aufzuteilen, alle weiteren Schritte werden den Prozessen selbst überlassen
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.
Arten
- Können auf einem Kernel mehrere Prozesse gleichzeitig laufen, spricht man von Multitasking-Kerneln
- Wirklichkeit wird jedoch von der CPU immer nur ein Prozess gleichzeitig behandelt (außer bei Mehrkernsystemen). Den Wechsel regelt in den meisten Fällen der Scheduler. Wird ein Multitasking-Kernel durch Zugriffsverwaltungen auf Prozesse und Geräte ergänzt, erhält man ein Multiuser-(oder Mehrbenutzer-)System. Darauf können mehrere Benutzer gleichzeitig arbeiten