Betriebssysteme sind normalerweise an eine bestimmte Rechnerarchitektur gebunden. Auch ist es üblicherweise nicht vorgesehen, mehrere Instanzen eines Betriebssystems auf demselben Rechner laufen zu lassen. Die Auflösung dieser Beschränkungen führt zu interessanten Anwendungsfeldern. Hier kommt das Konzept des Hypervisors ins Spiel.
Definition
Ein Hypervisor ist eine Plattform, die sogenannte virtuelle Maschinen ausführt. Eine virtuelle Maschine ist eine Abbildung eines Rechners, die auf einem anderen Rechnersystem läuft. Hypervisor ermöglichen die gleichzeitige Ausführung verschiedener Betriebssysteme als virtuelle Maschinen auf derselben Hardware. Dazu schafft der Hypervisor für diese Betriebssysteme eine virtuelle Realität, eine Illusion der für sie gedachten Hardwareumgebung. In dieser virtuellen Realität arbeiten die Betriebssysteme wie gewohnt, aber u.U. nicht alleine exklusiv oder auf einer ihnen eigentlich fremden Hardware. Ihre Befehle werden dann z.B. von einem ganz anderen Typ von Prozessor bearbeitet, als vorgesehen, oder statt einer USB-Schnittstelle wird in Wirklichkeit ein anderer Schnittstellentyp angesprochen. Dennoch sind die “in der Fremde” bearbeiteten Ergebnisse, die den in virtueller Realität arbeitenden Programmen auf ihre Befehle hin zurückgeliefert werden, korrekt. Der Hypervisor ist der Vermittler zwischen den Welten.
Der Begriff setzt sich zusammen aus “Hyper”, das im Griechischen “über” bedeutet, und “Visor”, das vom Lateinischen “videre” abstammt, was “sehen” bedeutet. Im übertragenen Sinn handelt es sich also um ein System, das als “Aufseher” andere Systeme “überschaut”.
Wie funktioniert ein Hypervisor?
Hypervisor bieten eine Umgebung aus virtueller Hardware (inklusive Prozessor, Speicher und Peripherie), in der Gastbetriebssysteme als virtuelle Maschinen installiert und betrieben werden können. Der Computer, auf dem ein Hypervisor virtuelle Maschinen ausführt, wird als Hostsystem bezeichnet, eine virtuelle Maschine als Gastsystem. Der Hypervisor weist (evtl. gleichzeitig mehreren) virtuellen Maschinen Ressourcen des Hostsystems zu, die gemeinsam, aber unabhängig und “unwissend” voneinander auf diesem System laufen, und verwaltet die Ausführung der Gastbetriebssysteme. Den einzelnen Gastbetriebssystemen wird dabei jeweils ein kompletter eigener Rechner mit allen Hardwarekomponenten vorgespielt. Beispielsweise können Linux-, Windows- und macOS-Instanzen auf einem einzigen physischen x86-Computer ausgeführt werden.
Welche Hypervisor gibt es?
In einer grundlegenden Arbeit “Architectural Principles for Virtual Computer Systems” führte R. Goldberg 1973 das Konzept des Hypervisors ein. Er unterschied dabei zwei Hypervisor-Typen:
Bare-Metal-Hypervisor
Typ 1 (“bare-metal”) setzt direkt auf der Hardware auf, es ist keine Betriebssystem-Installation nötig. Der Hypervisor selber bildet zusammen mit der Hardware das Hostsystem für das Gastsystem.
Aktuelle Hypervisor vom Typ 1 sind z.B. VMware ESX Server, IBM POWER Hypervisor (PowerVM), IBM System z Hypervisor (PR/SM), Microsoft Hyper-V, Citrix XenServer und Oracle VM Server.
Hosted-Hypervisor
Typ-2 (“hosted”) läuft auf einem Betriebssystem, dem Hostsystem. Um auf die Hardware des Hostsystems zuzugreifen, benutzt er dessen Gerätetreiber.
Aktuelle Hypervisor vom Typ 2 sind z.B. VMware Server (GSX), VMware Fusion, VMware Workstation, Microsoft Virtual PC, Microsoft Virtual Server.
Wie kann man Hypervisor nutzen?
Virtuelle Maschinen in Form von unterschiedlichen Gastbetriebssystemen ermöglichen Softwareentwicklern mit geringem Aufwand Tests der Software auf den Zielplattformen. Fehler haben keine Auswirkungen auf das Hostsystem, sondern wirken sich nur im Gastsystem aus.
Indem mehrere Systeme auf derselben Hardware laufen, werden die Ressourcen der Hardware besser ausgelastet. Eine neue virtuelle Maschine kann nach Bedarf ad hoc bereitgestellt werden, ohne dass eine Hardware-Anschaffung erforderlich ist. Bei Servervirtualisierung werden z.B. viele kleine physische Server durch virtuelle Maschinen ersetzt, die auf einem größeren Server laufen. Dadurch wird der Bedarf an Hardwareressourcen wie Prozessoren und Festplatten reduziert, aber auch der Energiebedarf.
Eine virtuelle Maschine kann einfacher per Remote gesteuert und inspiziert werden als eine physische Maschine. Außerdem ist die Konfiguration einer virtuellen Maschine flexibler. Dies ist nützlich z.B. bei der Kernel-Entwicklung und für Betriebssystemkurse, aber auch für die Ausführung älterer Betriebssysteme, die keine moderne Hardware unterstützen.
Eine virtuelle Maschine kann bei Bedarf von einer physischen Instanz zu einer anderen verschoben werden. Beispielsweise kann ein Verkäufer für eine Präsentation beim Kunden eine virtuelle Maschine mit der Demonstrationssoftware auf seinen Laptop nutzen, ohne den physischen Computer transportieren zu müssen.
Es kann für Testzwecke eine geschützte Umgebung für Betriebssysteme erstellt werden. Wenn ein Gastbetriebssystem, das auf einer virtuellen Maschine ausgeführt wird, auf eine Weise beschädigt wird, deren Reparatur nicht kosteneffektiv ist, z.B. beim Studium von Malware oder sich fehlerhaft verhaltender Software, kann die virtuelle Maschine einfach gelöscht und mit einer neuen Kopie des Gastsystems wieder gestartet werden. Ein Fehler in einer virtuellen Maschine kann das Hostsystem nicht beschädigen, so dass ein Absturz des Gastsystems nicht das Hostsystem beeinträchtigt.
Ferner können Anwendungen genutzt werden, die nicht vom Hostbetriebssystem unterstützt werden.
Genau aufgrund dieser Vorteile sind vServer im Bereich des Webhostings so weit verbreitet. Kaum ein Server ist regelmäßig komplett ausgelastet. Wenn man mehrere virtuelle Maschinen auf einer physischen Maschine hostet, können sich die virtuellen Maschinen die Leistung teilen und sind trotzdem komplett voneinander getrennt.
Fazit
Hypervisor ermöglichen ein Konzept der Virtualisierung von Betriebssystemen. Die lässt sich nicht nur für Entwicklungstest-, Schulungs- und Präsentationszwecke einsetzen, sondern kann auch zur handfesten Einsparung von Hardware genutzt werden. Besonders im Bereich von Servern, Webhosting oder verteilten Anwendungen sind virtuele Maschinen und Hypervisor kaum noch weg zu denken.