Unterschied zwischen Hypervisor und Exokernel

7

Ein Hypervisor (1. Typ) ist eine Software, die virtuelle Maschinen erstellt und ausführt und die Anforderungen der Betriebssysteme des Gastes an die Hardware verwaltet.
Ein Exokernel ist ein operativer Systemkernel, mit dem Programme direkt auf die Hardware zugreifen oder mit Unterstützung bestimmter Bibliotheken, die Abstraktionen implementieren, verschiedene Arten von ausführbaren Dateien für diese Architektur ausführen können .

Beide sind eine Abstraktionsschicht zwischen Hardware und Anwendungssoftware.
Mit beiden können Sie auf demselben Computer verschiedene ausführbare Dateien / Software / Betriebssysteme / was auch immer ausführen

Was ist der Unterschied zwischen den beiden?

incud
quelle
Ich weiß nicht, ob dies ontopisch ist; Der Begriff "Hypervisor" scheint hier nicht in den Geltungsbereich zu fallen, während "Kernel" dies wahrscheinlich nicht ist.
Raphael
2
Warum sollte es nicht ontopisch sein? Bei dieser Frage geht es nach der Hilfe nicht um Programmierung, nicht um ein bestimmtes Stück SW / HW, nicht um numerische Berechnung, und ich frage nach dem wissenschaftlichen Konzept hinter den beiden beschriebenen Software-
Teilen

Antworten:

7

Das, was auf einem Hypervisor ausgeführt wird, sind ein oder mehrere vollständige Betriebssysteme. Ein Hypervisor virtualisiert die Hardware, so dass jedes Betriebssystem "ausgetrickst" wird, zu glauben, dass es eine ganze Maschine für sich hat. Das technische Genie von Hypervisoren besteht darin, diese Virtualisierung mit geringen oder keinen Kosten bereitzustellen (im Vergleich zum Ausführen eines Betriebssystems direkt auf der physischen Hardware).

Die Sache, die auf einem Exokernel läuft, ist eine Reihe von Prozessen auf Benutzerebene. Die Prozesse werden jeweils an eine Bibliothek angehängt (möglicherweise dieselbe Bibliothek, möglicherweise unterschiedliche Bibliotheken), die verschiedene Dienste und Richtlinien bereitstellen. Das Ziel des Exokernels besteht darin, nur Schutz zu bieten (um zu verhindern, dass ein Prozess die für einen anderen Prozess bestimmten Ressourcen verwendet) und Programme auf Benutzerebene die für sie effizientesten Richtlinien auswählen zu lassen. Exokernel war wirklich ein Forschungsprojekt, dessen Hauptausgabe eine Reihe von Studien über verschiedene Arten von Betriebssystemdiensten und die Hindernisse für eine effiziente Implementierung dieser Dienste war. Eine andere Möglichkeit, das Exokernel-Projekt anzuzeigen, bestand darin, zu untersuchen, wie ein Mikrokernel erstellt wird das ist nicht schrecklich ineffizient und langsam.

Eines der großen Probleme bei Mikrokernen besteht darin, dass sie ständig "Prozessgrenzen überschreiten" und / oder häufiger zwischen Benutzermodus und Kernelmodus hin und her wechseln als ein monolithischer Kernel (wie Linux). Die Kosten für den Wechsel vom Benutzermodus in Der Kernel-Modus oder vom Kernel-Modus zum Benutzermodus ist überraschend hoch (in den Tausenden von Maschinenzyklen pro Switch).

Mir ist nicht klar, inwieweit das Exokernel-Projekt erfolgreich war oder fehlgeschlagen ist. Es gibt sicherlich mehrere Fälle, in denen sie überraschende neue Möglichkeiten zur Bereitstellung von Ressourcenschutz gefunden haben (wie das Festplattenmodell, bei dem das Betriebssystem Berechtigungen für Festplattenblöcke verwaltet und das gesamte Dateisystem auf Benutzerebene verwaltet wird). Sie konnten auch einige der guten Ideen aus dieser Zeit nutzen, zum Beispiel Carl Waldsburgers Lotterieplanungstechniken. In einigen Fällen erwies sich der funktionsbasierte Schutz als ziemlich effizient.

Es gab andere Fälle, in denen die Bereitstellung von Richtlinienflexibilität die Anzahl der Kernel-Grenzüberschreitungen dramatisch erhöhte und sie auf andere Techniken zurückgreifen mussten. Beispielsweise haben sie bei der Netzwerkpaketfilterung anstelle der Filterung auf Benutzerebene diese im Kernel durchgeführt, dem Benutzerprogramm jedoch die Möglichkeit gegeben, ein kleines Programm (in einer eingeschränkten (und daher sicheren) Programmiersprache) einzureichen, das ausgeführt werden würde der Kernel. Ähnliche Ideen in diesem Bereich wurden ungefähr zur gleichen Zeit vom SPIN-Betriebssystemprojekt der University of Washington untersucht .

Wanderlogik
quelle
1
Es klingt so, als ob die Unterscheidung zwischen Paravirtualisierung (wenn das Betriebssystem weiß, dass es nicht direkt auf der Hardware ausgeführt wird und eine Kommunikationsschnittstelle mit dem Hypervisor ausnutzen kann) und dem Exokernel-Modell etwas verschwommen sein könnte.
Paul A. Clayton