Exokernel
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
Das Exokernel -Konzept gibt es seit mindestens 1994,[3] Aber ab 2010[aktualisieren] 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
- Hybridkern
- Hypervisor
- Kernel (Informatik)
- Mikrokernel
- Monolithischer Kernel
- Nanokernel
- Paravirtualisierung
- Rump -Kernel
- Einzelner Adressraum Betriebssystem (Sasos)
- Unikernel
- Rohmetall
Verweise
- ^ "MIT Exokernel -Betriebssystem". pdos.csail.mit.edu. Abgerufen 2018-01-25.
- ^ 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.
- ^ Engler, Kaashoek & O'Toole 1995.
Literaturverzeichnis
- Engler, Dawson R (1998). "Die Exokernel -Betriebssystemarchitektur" (PostScript). MIT. Abgerufen 2006-09-22.
{{}}
: Journal zitieren erfordert|journal=
(Hilfe) - ———; Kaashoek, M. Frans (1996). "Alle Betriebssystemabstraktionen verärgern" (PostScript). MIT. Abgerufen 2006-09-22.
{{}}
: Journal zitieren erfordert|journal=
(Hilfe) - ———; Kaashoek, M. Frans; O'Toole, James JR (1995). "Exokernel: Eine Betriebssystemarchitektur für Ressourcenverwaltung auf Anwendungsebene" (PDF). Verfahren des fünfzehnten ACM -Symposiums für Betriebssysteme Prinzipien: 251–66. doi:10.1145/224056.224076. ISBN 978-0-89791-715-5. S2CID 221932539. Abgerufen 2014-10-08.
Externe Links
- Erlingsson, úlfar; Kyparlis, Athanasios, Mikrokernel, Cornell,
Das Ausmaß, in dem einfache, effiziente Vorgänge eine gute Wahl in einem Kernel -Schnittstellendesign sind
. - Exokernel -Betriebssystem, MIT. Ein Forschungs -Exokernel.
- Nemesis, Vereinigtes Königreich: Cambridge. Ein Forschungs -Exokernel.
- Baremetal OS, Infinity zurückkehren, archiviert von das Original Am 2014-09-06. Ein kommerzieller Exokernel.
- Xomb. Ein Forschungs -Exokernel.
- Prüfung, Fr. Das GNU Exokernel.