Was ist ein Hypervisor?
Ein Hypervisor ist eine einzigartige Art von Software, mit der ein Computer mehr als ein Betriebssystem ausführen kann. Durch einen Prozess, der als Virtualisierung bezeichnet wird, wird jedes Betriebssystem dazu verleitet, den exklusiven Zugriff auf eine bestimmte Gruppe von Hardware zu befürchten. Es befindet sich zwischen der physischen Hardware und dem Betriebssystem und bietet allen anderen auf dem Computer ausgeführten Programmen einen virtuellen Hardwaresatz. Es verwaltet auch den Informationsfluss zwischen Software, der virtualisierten Hardware und der physischen Hardware. Diese Art von Software wird sowohl in Consumer- als auch in Unternehmenseinstellungen verwendet.
In den meisten Fällen wird das Betriebssystem eines Computers in einem stark privilegierten Zustand ausgeführt, in dem der Zugriff auf die Hardware des Computers nicht eingeschränkt ist, während Anwendungen in einem weniger privilegierten Zustand ausgeführt werden und auf das Betriebssystem angewiesen sind. Diese verschiedenen Ebenen von Hardware-Zugriffsrechten werden als Ringe bezeichnet, wobei das Betriebssystem traditionell in Ring 0 ausgeführt wird. Benutzeranwendungen werden in Ringen 1–3 ausgeführt, die weniger Berechtigungen haben. Dieses Modell funktioniert die meiste Zeit einwandfrei, bricht jedoch vollständig zusammen, wenn mehr als ein Betriebssystem gleichzeitig auf einem Computer ausgeführt werden soll. Ein Hypervisor löst dieses Problem mithilfe einer als Virtualisierung bezeichneten Technik.
Virtualisierung ist keine neue Idee, aber seit Mitte der 2000er Jahre ein Modewort, da Unternehmen und die IT-Branche ihr Potenzial zur Kostensenkung und Effizienzsteigerung erkannt haben. Es gibt viele verschiedene Ansätze für die Virtualisierung, aber die Grundidee besteht darin, simulierte Hardwaresätze zu erstellen, die häufig als virtuelle Maschinen bezeichnet werden. Im Fall eines Hypervisors, der auch als Virtual Machine Monitor bezeichnet werden kann, enthält jede virtuelle Maschine ein „Gastbetriebssystem“. Der Hypervisor selbst kann direkt auf der physischen Hardware ausgeführt werden. In diesem Fall handelt es sich um einen "Bare-Metal" -Typ oder innerhalb eines Host-Betriebssystems um einen "Software" -Hypervisor.
Hypervisoren müssen einige sehr ausgefeilte Techniken verwenden, um ihre Gastbetriebssysteme zu verwalten und sicherzustellen, dass sie nicht miteinander in Konflikt stehen. Da einem Betriebssystem in einer virtuellen Maschine nicht bekannt ist, dass ihm die Ring 0-Berechtigungen entzogen wurden, wird möglicherweise versucht, eingeschränkte Funktionen ohne Erlaubnis auszuführen. In diesen Fällen kann der Hypervisor eine Funktion abfangen, bevor sie die Hardware erreicht, die Anweisungen auf eine Weise ausführen, die anderen auf der Hardware ausgeführten Betriebssystemen keinen Schaden zufügt, und das Ergebnis an das ursprüngliche Betriebssystem zurückgeben. Bekannt als "Trap and Emulate" -Technik, ist dies nur eines von vielen fortschrittlichen Konzepten, die in der Welt der Virtualisierung einzigartig sind.
Da diese Art von Software immer wichtiger und lukrativer geworden ist, haben immer mehr Unternehmen nach Möglichkeiten gesucht, die Belastung eines Hypervisors zu verringern und die Leistung zu steigern. Softwareanbieter haben ihre Betriebssysteme so geändert, dass sie die virtuellen Maschinen kennen, auf denen sie ausgeführt werden. Dies bedeutet, dass Szenarien mit weniger Trap- und Emulationstypen ausgeführt werden. Hardwareanbieter haben Unterstützung für eine neue Berechtigungsstufe hinzugefügt, die manchmal als Ring-1 bezeichnet wird. Neuere Softwareprogramme können eine oder beide dieser Techniken nutzen, um die Leistung zu steigern.
Hypervisoren sind jetzt in einer Vielzahl von Produkten sowohl auf Verbraucher- als auch auf Unternehmensebene zu finden. Verbraucherprodukte, mit denen ein Betriebssystem in einem anderen ausgeführt werden kann, verwenden häufig einen Hypervisor vom Typ Software. Im Unternehmensbereich ermöglicht die Software die Konsolidierung von unterlasteten Servern mit unterschiedlichen Betriebssystemen. Softwareentwickler können diesen Ansatz verwenden, um mehrere Instanzen ähnlicher oder sogar identischer Betriebssysteme auszuführen und auf Kompatibilitätsprobleme zu testen.