Exokernel

Exokernel ist ein Betriebssystemkern, der durch die MIT-Parallele und Verteilte Betriebssystemgruppe und auch eine Klasse von ähnlichen Betriebssystemen entwickelt ist.

Die Idee hinter exokernels ist, so wenige Abstraktionen wie möglich auf Entwicklern zu zwingen, ihnen ermöglichend, so viele Entscheidungen wie möglich über Hardware-Abstraktionen zu treffen. Exokernels sind winzig, da Funktionalität auf das Sicherstellen des Schutzes beschränkt wird und von Mitteln gleichzeitig zu senden, die gewaltig einfacher sind als die Durchführung der herkömmlichen Mikrokerne des Nachrichtenübergangs und die Durchführung der monolithischen Kerne von Abstraktionen.

Durchgeführte Anwendungen werden Bibliothek Betriebssysteme genannt; sie können um spezifische Speicheradressen, Plattenblöcke usw. bitten. Der Kern stellt nur sicher, dass die gebetene Quelle frei ist, und der Anwendung erlaubt wird, darauf zuzugreifen. Dieser auf niedriger Stufe Hardware-Zugang erlaubt dem Programmierer, kundenspezifische Abstraktionen durchzuführen, und unnötige wegzulassen, meistens eine Leistung eines Programms zu verbessern. Es erlaubt auch Programmierern zu wählen, welches Niveau der Abstraktion sie, hoch, oder niedrig wollen.

Exokernels kann als eine Anwendung der Länge nach Grundsatz zu Betriebssystemen gesehen werden, darin zwingen sie kein Anwendungsprogramm zur Schicht seine Abstraktionen oben auf anderen Abstraktionen, die mit verschiedenen Voraussetzungen im Sinn entworfen wurden. Zum Beispiel, im MIT Exokernel Projekt, die Gepard-Webserver-Läden vorformatierte Internetprotokoll-Pakete auf der Platte, stellt der Kern sicheren Zugang zur Platte durch das Verhindern des unerlaubten Lesens und Schreibens zur Verfügung, aber wie die Platte abstrahiert wird, ist bis zur Anwendung oder den Bibliotheken der Anwendungsgebrauch.

Motivation

Traditionell Kernentwerfer haben sich bemüht, individuelle Hardware-Mittel unsichtbar für Anwendungsprogramme zu machen, indem sie die Programme verlangen, mit der Hardware über ein Abstraktionsmodell aufeinander zu wirken. Diese Modelle schließen Dateisysteme für die Plattenlagerung, virtuelle Adressräume für das Gedächtnis, Planer für die Aufgabenverwaltung und Steckdosen für die Netzkommunikation ein. Diese Abstraktionen der Hardware machen es leichter, Programme im Allgemeinen, aber Grenze-Leistung zu schreiben und Experimentieren in neuen Abstraktionen zu ersticken. Eine Sicherheitsorientierte Anwendung könnte ein Dateisystem brauchen, das alte Daten auf der Platte nicht verlässt, während eine Zuverlässigkeitsorientierte Anwendung ein Dateisystem brauchen könnte, das solche Daten für die Misserfolg-Wiederherstellung behält.

Eine Auswahl ist, den Kern völlig und das Programm direkt zur Hardware zu entfernen, aber dann würde die komplette Maschine der Anwendung gewidmet, die wird schreibt (und, umgekehrt die komplette Anwendung codebase würde dieser Maschine gewidmet). Das exokernel Konzept ist ein Kompromiss: Lassen Sie den Kern die grundlegenden physischen Mittel der Maschine (z.B Plattenblöcke, Speicherseiten, und Verarbeiter-Zeit) zu vielfachen Anwendungsprogrammen zuteilen, und jedes Programm entscheiden lassen, was man mit diesen Mitteln tut. Das Programm kann sich dann zu einer Unterstützungsbibliothek verbinden, die die Abstraktionen durchführt, die es braucht (oder es sein eigenes durchführen kann).

MIT exokernel

MIT hat zwei mit Sitz in exokernel Betriebssysteme mit zwei Kernen entwickelt: Aegis, ein Beweis des Konzepts mit der beschränkten Unterstützung für die Lagerung und XOK, der das exokernel Konzept mehr gründlich angewandt hat.

Eine wesentliche Idee vom MIT exokernel System besteht darin, dass das Betriebssystem als ein Manager für kleine durch die Anwendungssoftware zur Verfügung gestellte Programme handeln sollte, die nur durch die Voraussetzung beschränkt werden, dass der exokernel im Stande sein muss zu versichern, dass sie die Hardware sicher verwenden.

Design

Der MIT exokernel führt Hardware-Mittel wie folgt:

Verarbeiter

Der Kern vertritt die Verarbeiter-Mittel als eine Zeitachse, von der Programme Zwischenräume der Zeit zuteilen können. Ein Programm kann den Rest seines Zeitabschnittes zu einem anderen benannten Programm nachgeben. Der Kern gibt Programme von Verarbeiter-Ereignissen, wie Unterbrechungen, Hardware-Ausnahmen, und der Anfang oder das Ende eines Zeitabschnittes bekannt. Wenn ein Programm viel Zeit in Anspruch nimmt, um ein Ereignis zu behandeln, wird der Kern es auf nachfolgenden Zeitabschnitt-Zuteilungen bestrafen; in äußersten Fällen kann der Kern das Programm abbrechen.

Gedächtnis

Der Kern teilt physische Speicherseiten Programmen zu und kontrolliert die Übersetzung lookaside Puffer. Ein Programm kann eine Seite mit einem anderen Programm durch das Senden ihm einer Fähigkeit teilen, auf diese Seite zuzugreifen. Der Kern stellt sicher, dass Programm-Zugang nur paginiert, für den sie eine Fähigkeit haben.

Plattenlagerung

Der Kern identifiziert Plattenblöcke zum Anwendungsprogramm durch ihre physische Block-Adresse, der Anwendung erlaubend, Datenstellen zu optimieren. Wenn das Programm seinen Gebrauch der Platte initialisiert, versorgt es den Kern mit einer Funktion, die der Kern verwenden kann, um zu bestimmen, welche Blöcke das Programm kontrolliert. Der Kern verwendet diese Rückrufaktion, um nachzuprüfen, dass, wenn es einen neuen Block zuteilt, das Programm nur den Block fordert, der zusätzlich zu denjenigen zugeteilt wurde, hat es bereits kontrolliert.

Netzwerkanschluss

Der Kern führt einen programmierbaren Paket-Filter durch, der Programme auf einer Byte-Codesprache durchführt, die für die leichte Sicherheitsüberprüfung durch den Kern entworfen ist.

Anwendungen

Die verfügbare Bibliothek Betriebssysteme für Exokernel schließt das kundenspezifische System von ExOS und einen Emulator für BSD ein. Zusätzlich zu diesen hat die exokernel Mannschaft den Gepard-Webserver geschaffen, der den Kern direkt verwendet.

Geschichte

Das exokernel Konzept ist ringsherum seitdem mindestens 1994 gewesen, aber exokernels sind noch eine Forschungsanstrengung und sind in keinen kommerziellen Hauptbetriebssystemen verwendet worden. Ein Konzept, das exokernel System funktioniert, ist Nemesis, die von der Universität des Cambridges, Universität Glasgows, Citrix Systeme und des schwedischen Instituts für die Informatik geschrieben ist. MIT hat auch gestützte Systeme mehrerer exokernel einschließlich ExOS gebaut.

Siehe auch

Referenzen

Links


'Ilaheva / Atua
Impressum & Datenschutz