Kernel-based Virtual Machine

Kernel-based Virtual Machine eli KVM on Linux-ytimeen rakennettu tuki virtualisoinnille. KVM on julkaistu Linux versiossa 2.6.20 helmikuussa 2007. KVM projektista ilmoitti ensimmäisen kerran sen aloittaja Avi Kivity 19. lokakuuta 2006 viestissä Linux Kernel -postituslistalle.
KVM on tyypin 1 (suoraan laitteistolla ajettava) hypervisor, joka hyödyntää Linux-ytimen ominaisuuksia ja suorittaa virtuaalikoneita tavallisina prosesseina. Kaikki hypervisorit tarvitsevat käyttöjärjestelmätason toimintoja kuten muistinhallinnan, laiteajurit ja verkkopinon, jotka KVM saa käyttöönsä koska se toimii Linux-ytimessä.
KVM tukee virtualisointia ilman muutoksia vieraskäyttöjärjestelmiin.

KVM vaatii suorittimelta tukea virtualisoinnille käskykantalaajennuksien avulla. 
KVM ei suorita eri suorittimen tai muun laitteiston emulointia vaan tämä on erillisen käyttäjäavaruudessa sijaitsevan ohjelman tehtävä.
Käyttäjäavaruudessa käytettävä osa on QEMU:ssa. KVM-virtualisointia voi hallinnoida libvirt-kirjaston avulla sitä käyttävistä sovelluksista.

KVM on kehitetty aluksi Intelin Intel VT (VMX) ja AMD:n AMD-V (SVM) käskyille.
Useat suoritinvalmistajat ovat tukeneet KVM:n kehitystä: Intel lisäsi tuen IA64-alustalle; IBM lisäsi tuen S/390- ja POWER-alustoille; ARM Holdings ja Linaro tukivat ARM-version kehitystä; Imagination Technologies lisäsi MIPS-alustan tuen.

KVM on tuettu IBM Z -alustalla.
RISC-V-suorittimen tuki on liitetty versioon 5.16.

IBM on julkaissut KVM:ään Power-arkkitehtuurilla käytettävän tuen suojatuille virtuaalikoneille ultravisor-virtualisoinnilla. AMD:n SEV-tuella voidaan salata virtuaalikoneiden muistit yksilöllisellä avaimella esimerkiksi pilvipalveluympäristöissä.

Useat eri käyttöjärjestelmät toimivat KVM:n kanssa täydellä virtualisoinnilla vieraskäyttöjärjestelminä. KVM ei tue suorittimen paravirtualisointia, mutta tukee laiteajurien kanssa virtio-rajapinnalla. KVM tukee käynnissä olevan virtuaalikoneen siirtoa isännältä toiselle (live migration) versiosta 15 lähtien (2007). AWS Firecracker perustuu perustuu KVM-hypervisorille.

KVM:n ylläpitäjä on Red Hatille työskentelevä Paolo Bonzini.

Katso myös 
 VMWare
 Xen

Lähteet

Aiheesta muualla 
 KVM-projektin kotisivu 
 Memory protection in Android using KVM 
 The Definitive KVM (Kernel-based Virtual Machine) API Documentation 

Linux-ydin
Virtualisointiohjelmistot