Kernebasert virtuell maskin

Kernebasert virtuell maskin Beskrivelse av Kvmbanner-logo2 1.png-bildet. Beskrivelse av Kvm som kjører forskjellige gjester.png-bilde. Informasjon
Utviklet av Open Virtualization Alliance (OVA)
Siste versjon 17
Innskudd git: //git.kernel.org/pub/scm/virt/kvm/kvm.git
Skrevet i VS
Type Hypervisor
Tillatelse GNU General Public License og GNU Lesser General Public License
Nettsted http://www.linux-kvm.org

KVM ( Kernel-based Virtual Machine ) er en gratis Type I hypervisor for Linux . KVM har blitt integrert i Linux-kjernen siden versjon 2.6.20.

Det fungerer opprinnelig på prosessorer med x86- arkitekturer som har Intel VT- eller AMD-V- virtualiseringsinstruksjoner . Siden den gang har KVM blitt portet for Power PC , IA-64 og ARM-arkitekturer siden Linux- kjernen 3.9.

Historie

Utviklingen av KVM startet i Qumranet-selskapet av Avi Kivity. Red Hat kjøpte Qumranet på4. september 2008. Siden da er KVM vedlikeholdt av utvikleren Marcelo Tosatti .

Operasjon

KVM ble designet fra en gren av QEMU, og deretter innarbeidet QEMU i sin tur kildekoden til den andre slik at de to er gjensidig avhengige av hverandre. Hovedendringen er støtte for kvm- modulen . Når vi snakker om KVM, mener vi vanligvis helheten: den modifiserte versjonen av QEMU og kvm- modulen .

QEMU er i stand til, takket være sin KQEMU-modul ( K for Kernel , "  kernel  " på engelsk), å utføre maskinkode direkte på vertsprosessoren for å øke hastigheten på emuleringen. Selv om denne teknologien gir en betydelig ytelsesgevinst, er den ikke perfekt. Beskyttelsesmekanismer for å fange opp og etterligne privilegerte hendelser må settes på plass. Imidlertid fungerer kjernekoden til gjestesystemet normalt helt i privilegert modus. Å bli etterlignet på en klassisk måte, blir det derfor sterkt straffet mens det er det avgjørende elementet i systemet.

Familien prosessorer av x86 har 4 nivåer av utførelsesrettigheter, kalt rings of protection . I tillegg til disse ringene, har nyere prosessorer en ny isolasjonsmekanisme som gjør det mulig å kjøre et gjestesystem direkte på prosessoren uavhengig av beskyttelsesringene det trenger for å fungere, samtidig som de gir beskyttelse mot lesing og skriving til minne som ikke tilhører virtuell maskin. Dette er hovedsakelig mulig takket være en dedikert MMU for hver virtuelle maskin på prosessoren og en omdirigering av maskinvaren avbryter til hypervisor for virtuelle maskiner (KVM i dette tilfellet) for å etterligne maskinvaren som gjestesystemet trenger.

Teknologiene implementert av de to store smelteverkene som er AMD og Intel er forskjellige, KVM-modulen er tilgjengelig i to undermoduler: kvm-intel og amd kvm-; kvm-modulen er til slutt bare til stede for å gi emulatoren en ekstra abstraksjon .

I nyere versjoner av kvm (minst versjon 60) er det mulig å bruke en mekanisme som ligner på paravirtualisering ved bruk av virtio . Den pilot Virtio er inkludert i kjernen Linux fra versjon 2.6.25 til et minimum. Det er også virtio- drivere for Windows . Denne mekanismen tillater økt kjøringshastighet fordi det ikke lenger er nødvendig å etterligne maskinvareenheter. Imidlertid forlater dette systemet rammene for virtualisering i streng forstand fordi det er nødvendig at pilotene blir informert om at de blir henrettet i et virtualisert miljø.

Se også

Relaterte artikler

Eksterne linker

Merknader og referanser

  1. Linux 2 6 20KernelNewbies .
  2. (in) Prosjektstatus på KVM-wiki.
  3. (no) Gmane Loom .
  4. [1] .
  5. "  Virtualization: Red Hat Acquires Israeli Qumranet  " , fra journaldunet.com (åpnet 9. oktober 2020 ) .
  6. Se denne sidennettstedet til Avi Kivity .
  7. Om arkitekturen til verts- og gjestesystemet er x86 32 eller 64 bit.
  8. Se denne siden på KVM-nettstedet .
  9. (no) [2] .
  10. (no) http://wiki.libvirt.org/page/Virtio .