Vad är en hypervisor?

En hypervisor är en unik typ av programvara som gör att en dator kan köra mer än ett operativsystem (OS). Genom en process som kallas virtualisering, lurar programvaran varje operativsystem att tro att det har exklusiv tillgång till en viss uppsättning hårdvara. Den sitter mellan den fysiska hårdvaran och operativsystemet och presenterar en virtuell uppsättning hårdvara för all annan programvara som körs på maskinen. Den hanterar också informationsflödet mellan mjukvara, den virtualiserade hårdvaran och den fysiska hårdvaran. Denna typ av programvara används i både konsument- och företagsinställningar.

I de flesta fall körs en dators operativsystem i ett mycket privilegierat tillstånd där det har obegränsad tillgång till maskinens hårdvara medan applikationer körs i ett mindre privilegierat tillstånd och måste förlita sig på operativsystemet. Dessa olika nivåer av åtkomstbehörigheter för hårdvara kallas ringar, där operativsystemet traditionellt körs i ring 0; användarapplikationer körs i ringar 1–3, som har färre privilegier. Denna modell fungerar bra för det mesta, men faller isär helt när man försöker köra mer än ett operativsystem på en enda dator samtidigt. En hypervisor löser detta problem genom att använda en teknik som kallas virtualisering.

Virtualisering är ingen ny idé, men det har blivit något av ett modeord sedan mitten av 2000-talet då företag och IT-industrin har insett sin potential att sänka kostnaderna och öka effektiviteten. Det finns många olika tillvägagångssätt för virtualisering, men grundidén är att skapa simulerade uppsättningar av hårdvara som ofta kallas virtuella maskiner. När det gäller en hypervisor, som också kan kallas en virtuell maskinövervakare, innehåller varje virtuell maskin ett ”gäst” OS. Själva hypervisorn kan köras direkt på den fysiska hårdvaran, i vilket fall den är känd som en ”bar metal”-typ eller inom ett värdoperativsystem som en ”programvara” hypervisor.

Hypervisorer måste använda några mycket sofistikerade tekniker för att hantera sina gästoperativsystem och säkerställa att de inte kommer i konflikt med varandra. Eftersom ett operativsystem inuti en virtuell maskin inte är medvetet om att det har berövats ring 0-privilegier, kan det försöka utföra begränsade funktioner utan tillstånd. I dessa fall kan hypervisorn fånga upp en funktion innan den når hårdvaran, exekvera instruktionerna på ett sätt som inte skadar andra operativsystem som körs på hårdvaran och returnera resultatet till det ursprungliga operativsystemet. Känd som en ”fälla och emulera”-teknik, är detta bara ett av många avancerade koncept som är unika för virtualiseringsvärlden.

I takt med att den här typen av mjukvara har blivit viktigare och mer lukrativ har fler företag letat efter sätt att lätta på belastningen på en hypervisor och ge ökad prestanda. Programvaruleverantörer har modifierat sina operativsystem för att vara medvetna om de virtuella maskiner de kör på, vilket innebär färre fälla-och-emulera typer av scenarier. Hårdvaruleverantörer har lagt till stöd för en ny nivå av privilegier som ibland kallas ring -1. Nyare program kan dra fördel av en eller båda av dessa tekniker för att öka prestandan.

Hypervisorer kan nu hittas i en mängd olika produkter på både konsument- och företagsnivå. Konsumentprodukter som tillåter ett operativsystem att köras inom ett annat använder ofta en hypervisor av mjukvarutyp. På företagsområdet tillåter programvaran att underutnyttjade servrar som kör olika operativsystem konsolideras. Mjukvaruutvecklare kan använda detta tillvägagångssätt för att köra flera instanser av liknande eller till och med identiska operativsystem för att testa för kompatibilitetsproblem.