Exokernel

Grafikübersicht über Exokernel. Exokernel sind viel kleiner als ein normaler Kernel (monolithischer Kernel). Sie gewähren einen direkteren Zugriff auf die Hardware, wodurch die meisten Abstraktionen entfernt werden

Exokernel ist ein Betriebssystem Kernel entwickelt von der MIT Parallele und verteilte Betriebssystemgruppe,[1] und auch eine Klasse ähnlicher Betriebssysteme.

Betriebssysteme präsentieren im Allgemeinen Hardware-Ressourcen für Anwendungen über hochrangig Abstraktionen wie (virtuelle) Dateisysteme. Die Idee hinter Exokernels besteht darin, den Anwendungsentwicklern so wenige Abstraktionen wie möglich zu erzwingen, sodass sie so viele Entscheidungen wie möglich über Hardware -Abstraktionen treffen können.[2] Exokernel sind winzig, da die Funktionalität darauf beschränkt ist, Schutz zu gewährleisten und Multiplexing von Ressourcen, was erheblich einfacher ist als konventionell Mikrokernel'Implementierung des Nachrichtenübergangs und Monolithische Kerne'Implementierung hochrangiger Abstraktionen.

Implementierte Abstraktionen werden als Bibliotheksbetriebssysteme bezeichnet. Sie können bestimmte Speicheradressen, Festplattenblöcke usw. anfordern. Der Kernel stellt nur sicher, dass die angeforderte Ressource kostenlos ist und die Anwendung darauf zugreifen kann. Mit diesem Hardware-Zugriff auf niedriger Ebene kann der Programmierer benutzerdefinierte Abstraktionen implementieren und unnötige weglassen, um die Leistung eines Programms zu verbessern. Außerdem können Programmierer auswählen, welche Abstraktionsniveau sie haben möchten, hoch oder niedrig.

Exokernel können als Anwendung der gesehen werden End-to-End-Prinzip In Betriebssystemen zwingen sie ein Anwendungsprogramm nicht dazu, seine Abstraktionen über andere Abstraktionen zu schichten, die mit unterschiedlichen Anforderungen entworfen wurden. Zum Beispiel im MIT Exokernel -Projekt dem Geparden Webserver speichert vorformatiert Internetprotokoll Pakete auf der Festplatte, der Kernel bietet einen sicheren Zugriff auf die Festplatte, indem sie unbefugtes Lesen und Schreiben verhindern. Wie die Festplatte abstrahiert wird, ist jedoch der Anwendung oder den Bibliotheken, die die Anwendung verwendet.

Motivation

Traditionell haben Kernel -Designer versucht, individuelle Hardware -Ressourcen für Anwendungsprogramme unsichtbar zu gestalten, indem die Programme über ein Abstraktionsmodell mit der Hardware interagieren. Diese Modelle enthalten Dateisysteme für den Speicher von Datenträgern, virtuelle Adressräume für den Speicher, Speicherplatz, Scheduler für Aufgabenverwaltung und Steckdosen Für Netzwerkkommunikation. Diese Abstraktionen der Hardware erleichtern das Schreiben von Programmen im Allgemeinen, begrenzen jedoch die Leistung und ersticken Experimente in neuen Abstraktionen. Eine sicherheitsorientierte Anwendung benötigt möglicherweise ein Dateisystem, das keine alten Daten auf der Festplatte hinterlässt, während eine zuverlässig orientierte Anwendung möglicherweise ein Dateisystem benötigt, das solche Daten für die Fehlerwiederherstellung aufbewahrt.

Eine Möglichkeit besteht darin, den Kernel vollständig zu entfernen und direkt auf die Hardware zu programmieren. Anschließend würde der gesamte Computer der zu schriftlichen Anwendung gewidmet (und umgekehrt würde die gesamte Anwendungscodebasis dieser Maschine gewidmet). Das Exokernel -Konzept ist ein Kompromiss: Lassen Sie den Kernel die grundlegenden physikalischen Ressourcen der Maschine zuweisen (z. Scheibe Blöcke, Speicherseitenund Prozessorzeit) an mehrere Anwendungsprogramme und lassen Sie jedes Programm entscheiden, was mit diesen Ressourcen zu tun ist. Das Programm kann dann zu einer Support -Bibliothek verknüpfen, die die Abstraktionen implementiert, die es benötigt (oder es kann seine eigene implementieren).

Mit Exokernels

MIT entwickelte zwei exokernelbasierte Betriebssysteme mit zwei Kerneln: AEGIS, ein Beweis für das Konzept mit begrenzter Speicherunterstützung, und XOK, das das Exokernel-Konzept gründlicher anwendete.

Eine wesentliche Idee des MIT -Exokernel -Systems ist, dass das Betriebssystem als Executive für kleine Programme fungieren sollte, die von der Anwendungssoftware bereitgestellt werden, die nur durch die Anforderung eingeschränkt werden, dass das Exokernel in der Lage sein muss, garantieren, dass sie die Hardware sicher verwenden.

Entwurf

Der MIT Exokernel verwaltet die Hardware -Ressourcen wie folgt:

Prozessor
Der Kernel repräsentiert die Prozessorressourcen als Zeitleiste, aus der Programme Zeitintervalle zuweisen können. Ein Programm kann den Rest seiner Zeitscheibe für ein anderes ausgewiesenes Programm liefern. Der Kernel benachrichtigt Programme von Prozessorereignissen, wie z. Interrupts, Hardwareausnahmenund der Anfang oder Ende einer Zeitscheibe. Wenn ein Programm lange dauert, um ein Ereignis zu erledigen, bestraft der Kernel es bei den folgenden Zeitscheibenzuweisungen. In extremen Fällen kann der Kernel das Programm abbrechen.
Erinnerung
Der Kernel weist physische Gedächtnisseiten zu Programmen zu und kontrolliert die Übersetzungs -Lookaside -Puffer. Ein Programm kann eine Seite mit einem anderen Programm freigeben, indem sie es sendet a Fähigkeit Sozug auf diese Seite. Der Kernel stellt sicher, dass Programme nur auf Seiten zugreifen, für die sie eine Fähigkeit haben.
Festplattenspeicher
Der Kernel identifiziert Festplattenblöcke für das Anwendungsprogramm durch ihre physische Blockadresse, sodass die Anwendung die Datenplatzierung optimieren kann. Wenn das Programm die Verwendung der Festplatte initialisiert, bietet es dem Kernel eine Funktion, mit der der Kernel bestimmen kann, mit welcher Programmsteuerung die Programmsteuerung blockiert. Der Kernel verwendet diesen Rückruf, um zu überprüfen, ob er bei einem neuen Block nur den Block, der zusätzlich zu den bereits kontrollierten Blocken zugewiesen wurde, behauptet.
Networking
Der Kernel implementiert ein programmierbares Paketfilter, was Programme in a ausführt Byte -Code Sprache für einfache Sicherheitsüberprüfungen durch den Kernel.

Anwendungen

Die verfügbaren Bibliotheksbetriebssysteme für Exokernel umfassen das benutzerdefinierte Exos -System und einen Emulator für BSD. Zusätzlich zu diesen hat das Exokernel -Team den Geparden erstellt Webserver, was den Kernel direkt verwendet.

Geschichte

Die Architektur von Minix 3

Das Exokernel -Konzept gibt es seit mindestens 1994,[3] Aber ab 2010 Exokernel sind immer noch ein Forschungsaufwand und wurden in größeren kommerziellen Betriebssystemen nicht eingesetzt.

Ein Konzept, das das Exokernel -System betreibt, ist Nemesis, geschrieben von Universität von Cambridge, Universität Glasgow, Citrix -Systeme, und die Schwedisches Institut für Informatik. MIT hat auch mehrere exokernelbasierte Systeme aufgebaut, darunter EXOs.

Siehe auch

Verweise

  1. ^ "MIT Exokernel -Betriebssystem". pdos.csail.mit.edu. Abgerufen 2018-01-25.
  2. ^ Engler, D. R.; Kaashoek, M. F.; O'Toole Jr., J.; Engler, D. R.; Kaashoek, M. F.; O'Toole Jr., J. (1995-12-03). "Exokernel: Eine Betriebssystemarchitektur für Ressourcenverwaltung auf Anwendungsebene". ACM SIGOPS -Betriebssysteme Überprüfung. 29 (5): 251, 251–266, 266. doi:10.1145/224056.224076. ISSN 0163-5980. S2CID 221932539.
  3. ^ Engler, Kaashoek & O'Toole 1995.

Literaturverzeichnis

Externe Links