WikiDer > Mikrokernel

Microkernel

EIN Mikrokernel ist in der Informatik ein Kernel die nur sehr wenige Dienste ausführt und somit die meisten Dienste im Benutzermodus ausführt. Der Wortteil Mikro kommt von der Altgriechisch μικρός (mikros: "klein"). Dies bezieht sich hauptsächlich darauf, dass Mikrokerne sehr klein sind. Das Gegenstück zum Mikrokernel ist der monolithischer Kernel, die Schichten im Supervisor-Modus ausführen.

Aufgaben eines Mikrokernels

Ein Mikrokernel ist ziemlich kompakt, da er viel weniger Steuerung erfordert als ein monolithischer Kernel. Hauptsache, ein Mikrokernel macht hauptsächlich vooralor Terminplanung, Speicherverwaltung und IPC, obwohl diese ersten beiden auch außerhalb des Kernels stattfinden können. Optional kann auch ein Mikrokernel dazu beitragen IOVerwaltung, Verwaltung von Fahrereingaben und -ausgaben sowie Zugriff auf die BIOS, oft durch Emulation. Alles andere geschieht im Benutzermodus.

Die Hauptsache ist, dass der Mikrokernel neben einem guten IPC auch ein gutes Scheduling bietet. Das Problem bei Microkernels ist, dass sie viel mehr Aufgaben wechseln müssen und Aufgaben viel mehr miteinander kommunizieren. Aufgrund fehlerhafter Algorithmen oder Logik kann dies zu einem langsamen System führen. Ein Beispiel für ein Betriebssystem, das hauptsächlich darunter leidet, ist Mach, während L4 eine Spitzenleistung liefert.

Server

Ein Mikrokernel verwendet Server. Diese sollten nicht mit denen verwechselt werden, die über das Netzwerk verwendet werden, obwohl sie von derselben Art sind. Die Server in Microkernels stellen eigentlich die Schnittstelle zwischen Software und Hardware/Treibern dar. Oftmals gibt es auch einen Server, der dafür sorgt, dass die Treiber richtig verwaltet werden. Zum Beispiel wird ein abstürzender Treiber dann neu gestartet, was in der . bekannt ist MINIX-System.

Unterschiede zu einem monolithischen Kernel

  • Mikrokernel machen mehr IPC, weil die Anwendungen und Treiber miteinander kommunizieren, so dass ein Mikrokernel mehr Aufgaben- und Speicherkontextänderungen durchführt.
  • Mikrokernel sind stabiler, da sie Tasks wie Treiber im Benutzermodus statt im Supervisor-Modus ausführen, sodass diese Tasks weniger Berechtigungen haben. Darüber hinaus ist es üblich, dass die IO vom Kernel verwaltet.
  • Mikrokernel sind kleiner, sodass weniger Code geschrieben wird, sodass die Wahrscheinlichkeit von Tippfehlern oder möglichen Denkfehlern geringer ist.
  • Mikrokernel sind erweiterbarer. Denn Microkernels bieten standardmäßig nur das Wesentliche an Funktionalität, sind aber modular aufgebaut.

Pur und hybrid

Mikrokernel haben wie monolithische Kernel das Problem, dass sie manchmal nicht vollständig Mikrokernel sind. Beispielsweise gibt es Mikrokernel, die die Treiber in einem Modus zwischen Supervisor-Modus und Benutzermodus ausführen. Hinzu kommt die Tatsache, dass es Mikrokerne gibt, die ihre Scheduler und Speicherverwaltung im Benutzermodus handhaben. Da die Betriebssystemwissenschaft keine vollständig definierte Fähigkeit ist, sind ihre Grenzen schwer zu definieren. In dieser Welt ist es daher eine akzeptierte Konvention, dass Microkernel die Treiber hauptsächlich im Benutzermodus ausführen. Menschen, die davon abweichen, engagieren sich meist in einer Mischform.

Beispiele für Mikrokerne

Siehe auch