# Betriebssystemkerne > Gute **Architektur** sagt und _warum_ etwas getan wurde. > Nicht _wie_ und nicht _wann_ und _wer_. ## Der Betriebssystemkern - Enthält grundlegende Funktionen des Betriebssystems - Systemaufrufe - Benutzerverwaltung - Prozessverwaltung inklusive Ausführungsreihenfolge ([Scheduling](06_prozessstruktur.md#zeitliche-ausf-hrung-von-prozessen)) - Interprozesskommunikation - Prozessumschalter ([Dispatcher](06_prozessstruktur.md#zeitliche-ausf-hrung-von-prozessen)) - Gerätetreiber - [Speicherverwaltung](06_prozessstruktur.md#prozesse-im-speicher) - Dateisysteme zur Verwaltung von Dateien auf Speicherlaufwerken - Ist die Schnittstelle zur Hardware des Computers - Funktionalitäten im BS-Kern haben vollen Hardwarezugriff - Funktionalitäten laufen als Prozess im Adressraum des Kerns - Funktionalitäten müssen nicht zwingend im Kern positioniert sein, sie können auch über Dienste bereitgestellt werden (Architektur) ## Übersicht Betriebssystem ![image_17.png](image_17.png) ### Betriebssystemkern - Der **Kernel-Bereich** ist privilegiert ### Die Anwendungsschicht - Der **User-Bereich** ist nicht privilegiert, kann aber darauf aufbauende Funktionalitäten bereitstellen - Zugriff auf die Hardware erfolgt alleinig durch die im _Kernel_ bereitgestellten Funktionalitäten (System-Calls) ## Monolitische Kerne Ein Monolith enthält alle Funktionalitäten eines Betriebssystems | Pro | Con | |-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| | Bessere **Ausführungsgeschwindigkeit** da weniger _Prozesswechsel_ notwendig sind | Abgestürzte Komponenten des Kerns können nicht separat neu gestartet werden -> können das gesamte BS zum Absturz bringen | | Durch jahrelange Entwicklungstätigkeit ist eine gewachsene **Stabilität** vorhanden | | ## Minimale Kerne (Microkernel) Hier befinden sich nur die nötigsten Funktionen im Kernel | Pro | Con | |--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| | Alle weiteren Funktionalitäten laufen als _Dienste_ bzw. _Server_ im User-Modus | Abgestürzte Komponenten des Kerns können nicht separat neu gestartet werden -> können das gesamte BS zum Absturz bringen | | Ausgelagerte Funktionalitäten sind leichter austauschbar, bietet bessere _Stabilität_ und _Sicherheit_ | | ## Hybride Kerne Enthalten Komponenten, die, aus Geschwindigkeitsgründen, zusätzlich in den Kernel aufgenommen werden