Microkernel
Ein Mikrokernel, ist ein Betriebssystemkern, der im Gegensatz zu einem monolithischen Kernel nur grundlegende Funktionen erfüllt wie Speicher- und Prozessverwaltung, sowie Grundfunktionen zur Synchronisation und Kommunikation. Alle weiteren Funktionen werden als eigene Prozesse im Benutzer-Modus implementiert.
Vorteile
Separierte Komponenten:
- Einzelne Bestandteile des Betriebssystems können beliebig ausgetauscht werden, ohne dass dadurch andere Teile beeinträchtigt werden
- Absturz einer einzelnen Komponente führt nicht Zusammenbruch des Systems
Treiber im Benutzer-Modus:
- Die Gerätetreiber laufen zusammen mit einem Anwendungsprogramm im Benutzer-Modus
- Die Zugriffsrechte der Treiber können einzeln bestimmt werden
- Gerätetreiber brauchen nicht im Kernel zu sein und sind meist so konzipiert, dass sie auch mit Benutzerrechten ausgeführt werden können
- Zur Treiber-Verwendung genügt es, als normaler Benutzer mit Zugriffsrechten auf die benötigte Hardware angemeldet zu sein
- Es ist keine Änderung von Systemdateien oder ein Neustart des Systems nötig
kleine Trusted Computing Base:
- Der Kernel-Code, dem ein Nutzer vertrauen muss, ist im Vergleich zu monolithischen Betriebssystemen relativ klein und somit einfacher zu verifizieren.
Nachteile
Geschwindigkeit:
- Da das auf dem Mikrokern laufende Betriebssystem aus vielen einzelnen Nutzer-Prozessen besteht, sind wesentlich mehr Kontextwechsel nötig als bei monolithischen Betriebssystemen
- Dadurch ist ein Mikrokern in der Regel langsamer als ein monolithischer
Synchronisation:
- Für die Leistung eines Mikrokern-Systems ist die Synchronisation der vielen Nutzer-Prozesse am wichtigsten
- Die koordinierenden Kernel-Prozesse sind komplex und schwierig zu optimieren.
Hardware-Zugriff:
- Betriebssystemaufrufe, wie physischer I/O-Zugriff, diesen ist direkte Zugriffe auf die Hardware aus Sicherheitsgründen untersagt und benötigen dadurch den Kernel-Modus.
- Um das zu umgehen, können ausgewählte Module wie der I/O-Treiber im Kernel-Modus betrieben werden.
- Alternativ kann der Mikrokern um elementare I/O-Funktionen erweitert werden
Beide Lösungen weichen das Mikrokern-Konzept auf.
Bekannte Microkernel
- Mach
- GNU Mach
- Kernschnittstelle L4, Implementierungen:
- Fiasco
- L4Ka: :Pistachio
- L4Ka: :Hazelnut
- Quark
- KeyKOS, EROS, Coyotos
- Minix
- Nucleus
Betriebssysteme, die auf Mikrokernen aufsetzen
- AmigaOS
- Amoeba
- ChorusOS
- GNU/Hurd
- Google Fuchsia
- Harmony OS
- L4Linux
- Minix
- MkLinux
- MorphOS
- PC/GEOS
- PikeOS
- QNX Neutrino
- SCIOPTA
- Singularity
- Symbian OS
- Symobi
- Tru64 UNIX
- ENEA Ose
- ThreadX