Was ist der Unterschied zwischen Microkernel und monolithischem Kernel?

Das Hauptunterschied zwischen Mikrokern und monolithischem Kern liegt das Mikrokern-basierte Systeme verfügen über OS-Dienste und Kernel in separaten Adressräumen, während monolithische Kernel-basierte Systeme über OS-Dienste und Kernel im selben Adressraum verfügen.

Mikrokern und monolithischer Kern sind zwei Arten von Kerneln. Kernel ist der Kern des Betriebssystems. Daher gibt es einen speziellen Speicherbereich zum Speichern des kritischen Codes des Kernels. Der Kernel ist eine wichtige Komponente, da er das ordnungsgemäße Funktionieren des gesamten Systems gewährleistet. Es führt Hardware- und Prozessverwaltung, Dateiverwaltung und viele andere Aufgaben durch.

Wichtige Bereiche

1. Was ist Microkernel?
     - Definition, Funktionalität
2. Was ist monolithischer Kern?
     - Definition, Funktionalität
3. Was ist der Unterschied zwischen Microkernel und monolithischem Kernel?
     - Vergleich der wichtigsten Unterschiede

Schlüsselbegriffe

Kernel, Microkernel, Monolithischer Kernel, Betriebssystem

Was ist Microkernel?

Microkernel ist eine Art Kernel, mit dem das Betriebssystem angepasst werden kann. Es wird im privilegierten Modus ausgeführt und bietet eine einfache Adressraumverwaltung und Inter Process Communication (IPC). Darüber hinaus befinden sich Betriebssystemdienste wie Dateisystem, virtueller Speichermanager und CPU-Scheduler auf dem Mikrokern. Jeder Dienst verfügt über einen eigenen Adressraum, um ihn zu schützen. Außerdem haben die Anwendungen auch eigene Adressräume. Daher gibt es Schutz zwischen Anwendungen, Betriebssystemdiensten und Kernel.

Abbildung 1: Mikrokernel-Architektur

Wenn die Anwendung die Betriebssystemdienste für einen Dienst anfordert, kommunizieren die Betriebssystemdienste miteinander, um der Anwendung den erforderlichen Dienst bereitzustellen. Hier hilft die Inter Process Communication (IPC) beim Aufbau dieser Kommunikation. Insgesamt bietet das Mikrokernel-basierte Betriebssystem ein hohes Maß an Erweiterbarkeit. Es ist auch möglich, die Dienste des Betriebssystems an die Anforderungen der Anwendung anzupassen.

Was ist monolithischer Kern?

In monolithischen Kernel-basierten Systemen verfügt jede Anwendung über einen eigenen Adressraum. Daher ist jede Anwendung sicher. Außerdem enthält der Kernel alle Betriebssystemdienste. Daher können die Anwendungen Dienste vom Kernel anfordern. Einige Betriebssystemdienste sind Dateisystem, CPU-Scheduler, Netzwerkzugriff, Speichermanager usw. Das Betriebssystem befindet sich jedoch in einem separaten Adressraum. Daher ist es vor normalen Anwendungen und fehlerhaften Anwendungen sicher.

Abbildung 2: Monolithische Kernel-basierte Architektur

Wenn eine Anwendung einen Dienst erfordert, wechselt der Hardware-Adressraum der Anwendung in den Hardware-Adressraum des Betriebssystems, um ihn auszuführen.

Unterschied zwischen Mikrokern und monolithischem Kernel

Definition

Ein Mikrokernel ist ein Kernel-Typ, der Mechanismen wie Adressraumverwaltung auf niedriger Ebene, Thread-Verwaltung und Interprozesskommunikation zur Implementierung eines Betriebssystems bereitstellt. Im Gegensatz dazu ist ein monolithischer Kern eine Art Kernel in Betriebssystemen, bei denen das gesamte Betriebssystem im Kernelraum arbeitet. Diese Definitionen erklären den Hauptunterschied zwischen Mikrokern und monolithischem Kern.

OS-Dienste

Ein bemerkenswerter Unterschied zwischen Mikrokern- und monolithischem Kernel ist, dass in einem Mikrokernel-basierten System die Betriebssystemdienste und der Kernel voneinander getrennt sind. In einem monolithischen Kernelsystem enthält der Kernel jedoch die Betriebssystemdienste.

Geschwindigkeit

Geschwindigkeit ist auch ein wesentlicher Unterschied zwischen Mikrokern und monolithischem Kern. Ein Mikrokernsystem ist langsam, während ein monolithisches Kernsystem schnell ist.

Fehler

In einem Mikrokernel-basierten System wirkt sich ein Ausfall einer Komponente nicht auf die anderen Komponenten aus. In einem monolithischen Kernel-basierten System wirkt sich der Ausfall einer Komponente jedoch auf das gesamte System aus. Daher ist dies auch ein wichtiger Unterschied zwischen Mikrokern und monolithischem Kern.

Anpassung

Ein weiterer Unterschied zwischen Mikrokern und Monolithkern besteht darin, dass es einfacher ist, dem Mikrokern neue Funktionen hinzuzufügen. Daher ist es mehr anpassbar. Es ist jedoch schwierig, dem monolithischen Kern neue Funktionen hinzuzufügen. Daher ist es nicht anpassbar.  

Größe

Außerdem ist der Mikrokern kleiner, während der monolithische Kern größer ist.

Fazit

Mikrokern und monolithischer Kern sind zwei Arten von Kerneln. Der Unterschied zwischen einem Mikrokern- und einem monolithischen Kernel besteht darin, dass die Mikrokernel-basierten Systeme OS-Dienste und den Kernel in separaten Adressräumen haben, während das monolithische Kernel-basierte Betriebssystem OS-Dienste und den Kernel im gleichen Adressraum hat.

Referenz:

1. Monolithische Struktur - Georgia Tech - Fortgeschrittene Betriebssysteme, Udacity, 23. Februar 2015, hier verfügbar.
2. Mikrokernel-basierte Betriebssystemstruktur - Georgia Tech - Fortgeschrittene Betriebssysteme, Udacity, 23. Februar 2015, verfügbar hier.