Mikrokernel in Operating-System: ArchiStruktur, Vorteile
Bevor wir MicroKernel lernen, wollen wir Folgendes verstehen:
Was ist Kern?
Ein Kernel ist ein wichtiger Teil eines Betriebssystems, der Systemressourcen verwaltet. Es fungiert auch als Brücke zwischen der Software und der Hardware des Computers. Es ist eines der ersten Programme, das beim Start nach dem Bootloader geladen wird. Der Kernel ist auch dafür verantwortlich, verschiedenen Programmen einen sicheren Zugriff auf die Hardware der Maschine zu bieten. Es entscheidet auch, wann und wie lange eine bestimmte Anwendung bestimmte Hardware nutzt.
Was ist Mikrokernel?
Mikrokernel ist eine Software oder ein Code, der die erforderliche Mindestmenge an Funktionen, Daten und Features enthält, um ein Betriebssystem zu implementieren. Es bietet eine minimale Anzahl von Mechanismen, die ausreicht, um die grundlegendsten Funktionen eines Betriebssystems auszuführen. Es ermöglicht die Implementierung anderer Teile des Betriebssystems, da es nicht viele Richtlinien auferlegt.
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?
Der monolithische Kernel führt alle grundlegenden Systemdienste aus Prozessmanagement, Speicherverwaltung, E/A-Kommunikation und Interrupt-Verarbeitung, Dateisystem usw. im Kernel-Bereich.
Bei diesem Kernel-Ansatz wird das gesamte Betriebssystem als einzelnes Programm im Kernel-Modus ausgeführt. Das Betriebssystem wird als Sammlung von Prozeduren geschrieben, die zu einem großen ausführbaren Binärprogramm verknüpft sind.
Mikrokernel Architektur
Ein Mikrokernel ist der wichtigste Teil für die korrekte Implementierung eines Betriebssystems. Im untenstehenden Diagramm können Sie sehen, dass der Mikrokernel grundlegende Operationen wie Speicher, Prozessplanungsmechanismen und Interprozesskommunikation erfüllt.
Microkernel ist die einzige Software, die auf der privilegierten Ebene ausgeführt wird. Die anderen wichtigen Funktionalitäten des Betriebssystems werden aus dem Kernel-Modus entfernt und im Benutzermodus ausgeführt. Diese Funktionalitäten können Gerätetreiber, Anwendungen, Dateiserver, Interprozesskommunikation usw. sein.
Komponenten des Mikrokernels
Ein Mikrokernel umfasst nur die Kernfunktionen des Systems. Eine Komponente wird nur dann in den Mikrokernel aufgenommen, wenn ihre Auslagerung die Funktionalität des Systems unterbrechen würde. Alle anderen nicht wesentlichen Komponenten sollten in den Benutzermodus versetzt werden.
Die im Mikrokernel erforderlichen Mindestfunktionen sind:
- Speicherverwaltung Mechanismen wie Adressräume sollten im Mikrokernel enthalten sein. Es enthält auch 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
Parameter | Monolithischer Kernel | Mikrokernel |
---|---|---|
Basic | Es handelt sich um einen großen Prozess, der in einem einzigen Adressraum ausgeführt wird | 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 ist 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, SymbianK42, Mac OS X, Integrity, usw. |
Vorteile von Microkernel
Hier sind die Vor- und Vorteile der Verwendung von Microkernel
- Die Mikrokernel-Architektur ist klein und isoliert und kann daher besser funktionieren.
- Mikrokerne sind sicher, da nur solche Komponenten eingebunden werden, die ansonsten die Funktionalität des Systems stören würden.
- Die Erweiterung des Systems ist leichter zugänglich, sodass sie der Systemanwendung hinzugefügt werden kann, ohne den Kernel zu stören.
- Mikrokernel sind modular aufgebaut und die verschiedenen Module können ausgetauscht, neu geladen und geändert werden, ohne den Kernel überhaupt zu berühren.
- Weniger Systemabstürze im Vergleich zu monolithischen Systemen.
- Die Microkernel-Schnittstelle hilft Ihnen, eine modularere Systemstruktur durchzusetzen.
- Fügen Sie neue Funktionen hinzu, ohne sie neu zu kompilieren
- Eine Fehlfunktion des Servers wird ebenso isoliert wie die Fehlfunktion jedes anderen Benutzerprogramms.
- Das Mikrokernel-System ist flexibel, sodass unterschiedliche Strategien und APIs, die von verschiedenen Servern implementiert werden, im System koexistieren können.
- Erhöhte Sicherheit und Stabilität führen zu einer geringeren Menge an Code, der im Kernel-Modus ausgeführt wird
Nachteil von Microkernel
Hier sind die Nachteile/Nachteile der Verwendung von Microkernel:
- Die Bereitstellung von Diensten in einem Mikrokernelsystem ist im Vergleich zum normalen monolithischen System teuer.
- Kontextwechsel oder Funktionsaufruf erforderlich, wenn die Treiber als Prozeduren bzw. Prozesse implementiert sind.
- Die Leistung eines Mikrokernelsystems kann gleichgültig sein und zu Problemen führen.
Zusammenfassung
- Ein Kernel ist ein wichtiger Teil eines Betriebssystems, der Systemressourcen verwaltet.
- Ein Mikrokernel ist eine Software oder ein Code, der die erforderliche Mindestmenge an Funktionen, Daten und Features zur Implementierung eines Betriebssystems enthält.
- Beim monolithischen Kernel-Ansatz läuft das gesamte Betriebssystem als einzelnes Programm im Kernelmodus.
- Ein Mikrokernel ist der wichtigste Teil für die korrekte Implementierung eines Betriebssystems.
- Ein Mikrokernel umfasst nur die Kernfunktionen des Systems.
- Ein monolithischer Kernel ist ein großer Prozess, der in einem einzigen Adressraum ausgeführt wird, während Mikrokernel in separate Prozesse, sogenannte Server, unterteilt werden kann.
- Die Mikrokernel-Architektur ist klein und isoliert und kann daher besser funktionieren
- Die Bereitstellung von Diensten in einem Mikrokernelsystem ist im Vergleich zum normalen monolithischen System teuer