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.
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.
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]
Bibliotheken
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]
Literatur
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
Einzelnachweise
↑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. Jahrgang, Nr.5, 3. Dezember 1995, ISSN0163-5980, S.251, 251–266, 266, doi:10.1145/224056.224076 (@1@2Vorlage:Toter Link/dl.acm.orgdl.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.