Mikrokernel in Operating-System: ArchiStruktur, Vorteile
⚡ Intelligente Zusammenfassung
Der Mikrokernel ist ein minimaler Betriebssystemkern, der nur die wesentlichen Funktionen – Speicherverwaltung, Prozessplanung und Interprozesskommunikation – im Kernelbereich hält, während Gerätetreiber, Dateiserver und andere Dienste separat im Benutzerbereich laufen.
Bevor wir uns mit dem Microkernel beschäftigen, sollten wir Folgendes verstehen:
Was ist Kern?
Der Kernel ist ein wichtiger Bestandteil eines Betriebssystems und verwaltet die Systemressourcen. Er fungiert als Schnittstelle zwischen der Software und der Hardware des Computers. Er ist eines der ersten Programme, das nach dem Bootloader beim Systemstart geladen wird. Der Kernel gewährleistet zudem den sicheren Zugriff verschiedener Programme auf die Hardware des Rechners und legt fest, wann und wie lange eine bestimmte Anwendung auf bestimmte Hardware zugreift.
Was ist Mikrokernel?
Ein Mikrokernel ist eine Software oder ein Code, der die minimal erforderlichen Funktionen, Daten und Merkmale zur Implementierung eines Betriebssystems enthält. Er stellt eine minimale Anzahl an Mechanismen bereit, die für die Ausführung der grundlegendsten Funktionen eines Betriebssystems ausreichen. Da er nur wenige Richtlinien vorgibt, ermöglicht er die Implementierung anderer Teile des Betriebssystems.
Mikrokernel und ihre Benutzerumgebungen werden üblicherweise in den C++ or C-Programmiersprachen mit ein wenig Assembler. Mit etwas hochrangigem Code sind jedoch auch andere Implementierungssprachen möglich.
Was ist ein monolithischer Kernel?
Ein monolithischer Kernel führt alle grundlegenden Systemdienste aus, wie zum Beispiel ProzessmanagementSpeicherverwaltung, E/A-Kommunikation und Interruptbehandlung, Dateisystem usw. im Kernelbereich.
Bei diesem Kernel-Ansatz läuft das gesamte Betriebssystem als ein einziges Programm im Kernel-Modus. Das Betriebssystem ist als Sammlung von Prozeduren geschrieben, die zu einem großen ausführbaren Binärprogramm verknüpft sind.
Mikrokernel Architektur
Der Mikrokernel ist der wichtigste Bestandteil für die korrekte Implementierung eines Betriebssystems. Wie Sie im folgenden Diagramm sehen können, übernimmt der Mikrokernel grundlegende Funktionen wie Speicherverwaltung, Prozessplanung und Interprozesskommunikation.
Mikrokernel-basiert Operating-System
Der Mikrokernel ist die einzige Software, die mit privilegierten Rechten ausgeführt wird. Die anderen wichtigen Funktionen des Betriebssystems werden aus dem Kernelmodus entfernt und im Benutzermodus ausgeführt. Zu diesen Funktionen gehören beispielsweise Gerätetreiber, Anwendungen, Dateiserver und die Interprozesskommunikation.
Komponenten des Mikrokernels
Ein Mikrokernel umfasst ausschließlich die Kernfunktionen des Systems. Eine Komponente wird nur dann in den Mikrokernel aufgenommen, wenn ihre Auslagerung die Systemfunktionalität beeinträchtigen würde. Alle anderen, nicht essentiellen Komponenten sollten im Benutzermodus ausgeführt werden.
Die minimalen Funktionalitäten, die im Mikrokernel erforderlich sind, sind:
- Speicherverwaltung Mechanismen wie Adressräume sollten im Mikrokernel enthalten sein. Er enthält außerdem Speicherschutzfunktionen.
- Prozessorplanungsmechanismen sollten Prozess- und Thread-Scheduler enthalten.
- Die prozessübergreifende Kommunikation verwaltet die Server, die ihre eigenen Adressräume ausführen.
Unterschied zwischen Mikrokernel und monolithischem Kernel
| Kenngrößen | Monolithischer Kernel | Mikrokernel |
|---|---|---|
| Plug-and-Play-Betrieb | Es handelt sich um einen großen Prozess, der in einem einzigen Adressraum abläuft. | Es kann in separate Prozesse, sogenannte Server, unterteilt werden. |
| Code | Um einen monolithischen Kernel zu schreiben, ist weniger Code erforderlich. | Um einen Mikrokernel zu schreiben, ist mehr Code erforderlich. |
| Sicherheit | Wenn ein Dienst abstürzt, bricht das gesamte System in einem monolithischen Kernel zusammen. | Wenn ein Dienst abstürzt, hat dies niemals Auswirkungen auf die Funktion eines Mikrokernels. |
| Kommunikation | Es handelt sich um eine einzelne statische Binärdatei. | Server kommunizieren über IPC. |
| Beispiel | Linux, BSDs, Microsoft Windows (95, 98, Ich), Solaris, OS-9, AIX, DOS, XTS-400 usw. | L4Linux, QNX, Symbian, K42, Mac OS X, Integrity, usw. |
Vorteile von Microkernel
Hier die Vorteile der Verwendung eines Mikrokernels:
- Die Mikrokernel-Architektur ist klein und isoliert, daher kann sie besser funktionieren.
- Mikrokernel sind sicher, weil nur solche Komponenten enthalten sind, die andernfalls die Funktionalität des Systems beeinträchtigen würden.
- Die Erweiterung des Systems ist leichter zugänglich, sodass sie in die Systemanwendung integriert werden kann, ohne den Kernel zu beeinträchtigen.
- Mikrokernel sind modular aufgebaut, und die verschiedenen Module können ersetzt, neu geladen oder modifiziert werden, ohne dass der Kernel selbst berührt werden muss.
- Weniger Systemabstürze im Vergleich zu monolithischen Systemen.
- Die Mikrokernel-Schnittstelle hilft Ihnen dabei, eine modularere Systemstruktur durchzusetzen.
- Neue Funktionen können hinzugefügt werden, ohne dass eine Neukompilation erforderlich ist.
- Auch eine Serverstörung lässt sich isolieren, genau wie eine Störung eines anderen Benutzerprogramms.
- Das Mikrokernelsystem ist flexibel, sodass verschiedene Strategien und APIs, die von unterschiedlichen Servern implementiert werden, im System nebeneinander existieren können.
- Erhöhte Sicherheit und Stabilität resultieren aus der verringerten Menge an Code, der im Kernelmodus ausgeführt wird.
Nachteile von Mikrokernel
Hier sind die Nachteile der Verwendung eines Mikrokernels:
- Die Bereitstellung von Diensten in einem Mikrokernelsystem ist im Vergleich zu einem normalen monolithischen System teuer.
- Ein Kontextwechsel bzw. ein Funktionsaufruf ist erforderlich, wenn die Treiber als Prozeduren bzw. Prozesse implementiert werden.
- Die Leistung eines Mikrokernelsystems kann gleichgültig sein und zu Problemen führen.


