Monolithischer Kernel

Aus Foxwiki

Ein monolithischer Kernel ist ein Kernel, in dem nicht nur Funktionen zu Speicher- und Prozessverwaltung und zur Kommunikation zwischen den Prozessen, sondern auch Treiber für die Hardwarekomponenten und möglicherweise weitere Funktionen direkt eingebaut sind.

  • Für die Treiber werden keine zusätzlichen Programme benötigt, ein Geschwindigkeitsvorteil gegenüber einem Mikrokernel.
  • Solche Kernel sind aber fehleranfälliger, da Teile die abgestürzt sind nicht einfach neu gestartet werden können, und den Absturz des gesamten Systems verursachen können.

Die Möglichkeit hardwarespezifischen Funktionen von den allgemeinen zu trennt (durch Module) wird oft durch ein geschicktes internes Abstraktionsmodell umgesetzt, um auch in einer monolithischen Kernelarchitektur ein Maximum an Programmübertragbarkeit auf andere Hardwareplattformen zu erreichen.

Vorteile

  • Da die gesamten Betriebssystemfunktionen im Kernel-Modus ablaufen, wird der zeit- und rechenaufwändige Wechsel zwischen den Ringen des Protected Mode minimal gehalten.
  • Die Zuverlässigkeit wichtiger Funktionen des Betriebssystems (wie Speicherverwaltung) ist nicht direkt vom Verhalten der Userprogramme abhängig und muss nicht in diese abgebildet werden (Stichwort: Dynamischer Speicher).
  • Es entfällt eine aufwändige Kommunikation zwischen den einzelnen Teilen des Betriebssystems. Dadurch werden Probleme vermieden, die beim weiteren Aufteilen der Betriebssystemfunktionalitäten entstehen.

Nachteile

  • Das Auswechseln von Funktionalitäten muss durch eine geschickte Verwaltung (beispielsweise durch Module) erfolgen.
  • Bei Änderungen ist es normalerweise notwendig, den ganzen Kernel neu zu übersetzen. Teilweise gibt es jedoch auch Möglichkeiten, nur einzelne Module zu kompilieren.

Betriebssysteme, die auf monolithischen Kernen aufsetzen

  • UNIX System V und unixoide Systeme wie z. B. 
    • BSD
      • macOS, iOS etc.
      • FreeBSD
      • OpenBSD
      • NetBSD
    • GNU/Linux
      • Android GNU/Linux-Kernel
  • DOS: MS-DOS, DR-DOS, PC DOS, FreeDOS …
  • OS/2
  • SkyOS
  • OpenVMS
  • Windows CE 6.0