Seitenleiste

Infodatenbank

Tutorial

Community

Monolithischer Kernel

Ein monolithischer Kernel zeichnet sich vorrangig durch seinen Funktionsumfang aus. Er erfüllt deutlich mehr Aufgaben als ein Kernel eigentlich müsste (vgl. Aufgaben des Kernels). In einem monolithischen Kernel sind Treiber bereits enthalten.

Durch die Integration von Treibern in den Kernel lässt sich die Geschwindigkeit verbessern. Allerdings wird das gesamte System dadurch fehleranfälliger und weniger stabil. Denn stürzt ein Treiber bei einem monolithischen Kernel ab, dann ist davon nicht nur der Treiber, sondern auch der Kernel und mit ihm alle anderen Treiber und dadurch auch das ganze System betroffen.

Dadurch, dass die Treiber im Kernelmodus laufen, laufen sie natürlich auch im Ring 0. Das hat zur Folge, dass schädlicher Code von evtl. Drittanbietern oder auch „nur fehlerhafter“ Code privilegierte Befehle ausführen kann.

Vorteile

  • Höhere Ausführungsgeschwindigkeit, da die Treiber im Ring 0 laufen und somit ein (relativ zeitaufwendiger) Ringwechsel erspart bleibt.
  • Es ist keine aufwendige Kommunikation zwischen den Betriebssystemteilen bzw. Treibern nötig.

Nachteile

  • Ein Fehler kann ausreichen, um das ganze System zum Absturz zu bringen oder zu zerstören.
  • Auswechseln von Funktionen ist nur schwer (z.B. mit Modulen bei Linux) möglich.
  • Änderungen erfordern meist ein komplettes neukompilieren des Kernels.

Bekannte monolithische Kernel

Bekannte monolithische Kernel sind z.B. der Linux-Kernel oder auch der BSD-Kernel. Auch MS-DOS basierte Systeme (Windows) verwenden einen monolithischen Kernel.

Das UNIX-Betriebssystem verwendet ebenfalls einen monolithischen Kernel.