Microkernel

Aus Foxwiki

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