Ein Exokernel, auch als vertikal strukturiertes Betriebssystem bezeichnet, ist eine Art von Kernel und damit der zentrale Bestandteil eines Betriebssystems. Im Gegensatz zu den meisten anderen Kernels bietet er nur sehr wenig Abstraktion der Hardware für Programme und beschränkt sich darauf Ressourcenkonflikte zu verhindern und Zugriffsrechte zu prüfen.

Man kann sich Exokernel als eine konsequente Weiterführung des Mikrokernel-Konzepts vorstellen. Im Gegensatz zu diesen sind sie aber noch rigider in der Wahl der angebotenen Mechanismen.

Vergleich eines „normalen“ (Mikrokernel, monolithischer Kernel) mit einem Exokernel. Der Exokernel bietet als einzige Abstraktion das Auflösen von Konflikten. Alle anderen Abstraktionen muss das Programm selber oder Libraries bereitstellen.

GeschichteBearbeiten

Das Konzept eines Exokernels existiert seit 1994 (Dissertation von Dawson Engler am MIT bei Frans Kaashoek), wurde allerdings (bis 2005) nur von dem Massachusetts Institute of Technology (MIT) für mehrere Systeme eingesetzt, darunter ExOs. Ein weiteres Konzept mit dem Namen Nemesis wurde von den Universitäten Cambridge und Glasgow, Cisco Systems und dem Swedish Institute of Computer Science entwickelt.

FunktionBearbeiten

Die meisten Kernel verbergen die Hardware des Computers durch eine Hardwareabstraktionsschicht vor der Software. So ist es mit virtuellem Speicher zum Beispiel möglich, Arbeitsspeicher für ein Programm zu reservieren, die genaue Speicheradresse kann allerdings nicht festgelegt werden.[1]

Exokernel hingegen beschränken sich lediglich auf das Verteilen und Schützen von geteilten Ressourcen wie z. B. Speicher, Ein-/Ausgabegeräte und Prozessoren. Sie erlauben Programmen nach Allokation durch den Kernel direkten Zugriff auf Speicherblöcke. Diese Freiheit kann dazu benutzt werden Programme zu beschleunigen, indem unnötige Abstraktionen (und damit Zwischenschichten) ausgelassen werden. Die Aufgabe des Exokernels ist es dabei, festzustellen, ob die gewünschte Ressource frei ist, also kein Ressourcenkonflikt vorliegt, und ob sie auch vom jeweiligen Programm benutzt werden darf.[2]

BibliothekenBearbeiten

Abstraktionen werden bei einem Exokernel-Betriebssystem außerhalb vom Kernel durch ein System von Bibliotheken (Library) bereitgestellt, die denen herkömmlicher Betriebssysteme gleichen, allerdings, bedingt durch die Eigenarten des Exokernels, flexibler sind. So ist es – zumindest theoretisch – möglich, verschiedene Betriebssysteme wie Windows oder Unix auf einem Exokernel laufen zu lassen, indem jedes von ihnen unterschiedliche Bibliotheken benutzt.[2]

LiteraturBearbeiten

  • Frans Kaashoek, James W. O'Toole, Dawson Engler: Exokernel: An Operating System Architecture for Application-Level Resource Management, ACM SIGOPS Operating Systems Review, Band 29, 1995, S. 251–266l

EinzelnachweiseBearbeiten

  1. D. R. Engler, M. F. Kaashoek, J. O'Toole Jr., D. R. Engler, M. F. Kaashoek, J. O'Toole Jr.: Exokernel: an operating system architecture for application-level resource management, Exokernel: an operating system architecture for application-level resource management. In: ACM SIGOPS Operating Systems Review. 29, Nr. 5, 3. Dezember 1995, ISSN 0163-5980, S. 251, 251–266, 266. doi:10.1145/224056.224076.@1@2Vorlage:Toter Link/dl.acm.org (Seite nicht mehr abrufbar, Suche in Webarchiven Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis.
  2. a b Exokernel: An Operating System Architecture for Application-Level Resource Management. M.I.T. Laboratory for Computer Science, abgerufen am 8. August 2016.