Wat is een hypervisor?
Een hypervisor is software of firmware die het maken en beheren van virtuele machines mogelijk maakt door de hardwarebronnen van een fysieke computer te abstraheren, waardoor meerdere besturingssystemen tegelijkertijd kunnen draaien. In plaats van een volledig systeem met hardware en een besturingssysteem te bouwen, creëert het een gevirtualiseerde versie, die in wezen een complete pc-omgeving simuleert.
Hoe werkt een hypervisor?
Bij het maken van een virtuele machine (VM) werkt deze op basis van een niet-virtuele, echte machine, zoals een pc. De VM is afhankelijk van de fysieke hardware. Daarom is er een laag tussen de twee niveaus die verantwoordelijk is voor het beheer: de hypervisor. De hypervisor is software die het beheer van de benodigde resources overneemt. Dit programma, ook wel Virtual Machine Monitor (VMM) genoemd, wijst resources toe binnen het systeem. Op deze manier kunnen meerdere en verschillende virtuele machines op een hostsysteem draaien, omdat de hypervisor ervoor zorgt dat ze elkaar niet hinderen en allemaal over de benodigde capaciteit beschikken.
De hypervisor creëert zo een abstractielaag tussen de hardware en de besturingssystemen die erop draaien. Dit doet hij door de hardwarebronnen op te splitsen in logische eenheden en voor elke VM een unieke omgeving te simuleren. De VM’s geven het gevoel dat ze rechtstreeks op echte hardware draaien, ook al delen ze bronnen met andere VM’s.
De strikte scheiding tussen verschillende virtuele machines zorgt niet alleen voor een goede verdeling van de middelen, maar verhoogt ook de veiligheid. De hypervisor zorgt ervoor dat een gastsysteem geen toegang heeft tot bestanden van een ander gastsysteem. Dit is vooral belangrijk voor testdoeleinden, zodat een defect programma geen schade toebrengt aan andere testomgevingen.
Geheugenbeheer
Bij CPU-virtualisatie gebruikt de hypervisor technieken zoals time-slicing om de verwerkingskracht eerlijk te verdelen over de VM’s. Moderne processors hebben speciale virtualisatiefuncties (bijvoorbeeld Intel VT-x of AMD-V) die de hypervisor ondersteunen en de overhead verminderen.
Het geheugen (RAM) wordt beheerd door middel van paging- en mappingtechnieken. De hypervisor wijst virtuele geheugenadressen toe aan fysieke geheugenblokken, zodat elke VM alleen zijn eigen geheugenruimte ziet. Wanneer er weinig geheugen beschikbaar is, kan het gebruikmaken van mechanismen zoals memory overcommitment of ballooning om het geheugen efficiënt over de VM’s te verdelen.
I/O- en apparaatbeheer
Virtuele machines hebben toegang tot hardwareapparaten zoals harde schijven, netwerkkaarten of grafische kaarten via virtuele interfaces. De hypervisor emuleert deze apparaten of stuurt verzoeken rechtstreeks door naar de fysieke hardware (met behulp van Direct-I/O- of pass-through-technieken). Dit zorgt voor een evenwicht tussen compatibiliteit en prestaties.
Isolatie en veiligheid
Een belangrijk voordeel van virtualisatie is de isolatie tussen VM’s. Elke VM werkt in zijn eigen omgeving, zodat fouten of aanvallen in één VM geen directe invloed hebben op andere virtuele machines of het hostsysteem. De hypervisor maakt gebruik van verschillende beveiligingsmechanismen om een strikte scheiding te garanderen, waaronder geheugenbeveiliging, toegangscontroles en sandboxing-technieken.
Verschillende soorten virtuele machine monitors
Er zijn twee verschillende soorten virtuele machine monitors: Type-1 en Type-2 hypervisors. Elk type heeft zijn eigen specifieke voordelen. Het eerste type is ook de oudere versie. Virtualisatie met deze technologie werd al in de jaren zestig toegepast.
Type-1 hypervisor
Het eerste type hypervisor wordt een bare-metal hypervisor of native hypervisor genoemd. Dit soort VMM wordt rechtstreeks op de fysieke hardware geïnstalleerd, waarbij het besturingssysteem van de host wordt omzeild. Als gevolg daarvan moet het alle benodigde apparaatstuurprogramma’s bevatten. Het resourceverbruik met een Type-1 hypervisor is relatief laag omdat de rekenkracht niet via het besturingssysteem van de host hoeft te lopen. Dit type hypervisor is in de eerste plaats ontworpen voor gebruikers die een virtualisatieserver willen opzetten. Voor kleinere thuisprojecten is een Type-1 hypervisor echter vaak te complex.

Type-2 hypervisor
De tweede variant (ook bekend als een gehoste hypervisor) vereist een bestaand besturingssysteem, dat op de fysieke hardware is gebouwd. Een Type-2 hypervisor wordt net als elk ander programma geïnstalleerd. De VMM beheert vervolgens de virtualisatie. Apparaatstuurprogramma’s hoeven niet in de hypervisor te worden geïnstalleerd, omdat het eigenlijke besturingssysteem ze gewoon aan de software kan doorgeven. Dit gemak gaat echter ten koste van de prestaties. Een aanzienlijk deel van de bronnen wordt al verbruikt door het besturingssysteem van de host. Door de eenvoudige installatie en configuratie zijn Type-2 hypervisors perfect voor kleinere projecten.
