comprendere la relazione tra Qemu e KVM


17

Qual è la differenza tra KVM e Qemu? A quanto ho capito, quest'ultimo è in grado di fornire "emulazione in modalità utente", il che significa che è possibile eseguire un singolo eseguibile creato per un'altra architettura come questa:

# file busybox-sparc 
busybox-sparc: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), statically linked, stripped
# qemu-sparc busybox-sparc ls
Packages_arm     Packages_i386    arm              busybox-armv6l   busybox-i686     busybox-powerpc  busybox-sparc    busybox-x86_64   i386
# 

..e "emulazione al computer", il che significa che non viene eseguita solo la traduzione binaria dinamica, ma viene emulata l'intera macchina virtuale (scheda video, scheda audio, schede di rete, dispositivi ottici ecc.). Per esempio:

# qemu-system-sparc64 -hda hda.img -cdrom debian-6.0.5-sparc-CD-1.iso -boot d

Come ho capito, Qemu non sa come sfruttare la virtualizzazione hardware (ad esempio soluzioni Intel VT-x o AMD-V su architettura x86) e questo è il caso in cui KVM può essere d'aiuto: si può avviare Qemu con il supporto KVM. Tuttavia, KVM fornisce altre funzionalità oltre all'accesso per i programmi di emulazione alla virtualizzazione assistita da hardware su architetture hardware specifiche? È possibile creare una macchina virtuale intera (CPU, scheda video, dispositivi I / O ecc.) Usando solo KVM? Se sì, quali programmi si dovrebbero usare per creare e controllare questa macchina virtuale?


2
possibile duplicato della differenza tra KVM e QEMU

Risposte:


16

Sei parzialmente corretto. Stai solo attento, perché può esserci un po 'di confusione. KVM è il nome della tecnologia di virtualizzazione nel kernel Linux.

KVM è anche comunemente usato come nome di un fork (un nome più accurato sarebbe qemu-kvm) del progetto QEMU con un miglior supporto per la virtualizzazione dell'hardware . Questa affermazione è stata confermata dal progetto QEMU , ma dalla versione 1.3 di QEMU tutte le funzionalità di qemu-kvm sono state unite .

La pagina di download per il progetto KVM spiega anche questa differenza.

Un'altra cosa da tenere a mente è che i vantaggi di qemu-kvm si stanno unendo nelle nuove versioni di qemu, quindi spero che un giorno la differenza tra i due scompaia.


Quindi, KVM "la tecnologia di virtualizzazione nel kernel Linux" e qemu-kvm sono due cose diverse?
dtmland,

@dtmland Bene, sì. qemu-kvm è un software userland che utilizza KVM nel kernel.
chutz

6

KVM è un modulo del kernel che consente, attraverso estensioni CPU specifiche di virtualizzazione, di pianificare una richiesta CPU VM direttamente nella CPU host e nella RAM, con un minimo di sovraccarico. QEMU fornisce il resto dell'hardware emulato, perché una macchina, anche virtuale, non è solo una CPU: è un sacco di hardware aggiuntivo. QEMU può anche emulare la CPU, ma rispetto al modo in cui KVM lo fa, è dolorosamente lento, quindi l'unione, per ottenere il meglio da entrambi i mondi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.