entender la relación entre Qemu y KVM


17

¿Cuál es la diferencia entre KVM y Qemu? Según tengo entendido, este último es capaz de proporcionar "emulación de modo de usuario", lo que significa que uno puede ejecutar un solo ejecutable creado para alguna otra arquitectura como esta:

# 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
# 

..y "emulación de computadora", lo que significa que no solo se realiza la traducción binaria dinámica, sino que se emula toda la máquina virtual (tarjeta de video, tarjeta de sonido, tarjetas de red, dispositivos ópticos, etc.). Por ejemplo:

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

Como he entendido, Qemu no sabe cómo aprovechar la virtualización de hardware (por ejemplo, las soluciones Intel VT-x o AMD-V en la arquitectura x86) y este es el caso en el que KVM puede ayudar: uno puede iniciar Qemu con soporte KVM. Sin embargo, ¿KVM proporciona alguna otra funcionalidad además del acceso para programas de emulación a la virtualización asistida por hardware en arquitecturas de hardware específicas? ¿Es posible crear una máquina virtual completa (CPU, tarjeta de video, dispositivos de E / S, etc.) usando solo KVM? En caso afirmativo, ¿qué programas se deben usar para crear y controlar esta máquina virtual?


2
posible duplicado de la diferencia entre KVM y QEMU

Respuestas:


16

Estás parcialmente en lo correcto. Solo tenga cuidado, ya que puede haber algo de confusión. KVM es el nombre de la tecnología de virtualización en el kernel de Linux.

KVM también se usa comúnmente como el nombre de una bifurcación (un nombre más preciso sería qemu-kvm) del proyecto QEMU con un mejor soporte para la virtualización de hardware . Esta afirmación fue confirmada por el proyecto QEMU , pero a partir de la versión 1.3 de QEMU, todas las características de qemu-kvm se han fusionado .

La página de descarga del proyecto KVM explica esa diferencia bastante bien también.

Una cosa más a tener en cuenta es que las ventajas de qemu-kvm se están fusionando en las versiones más recientes de qemu, por lo que espero que algún día la diferencia entre ambos desaparezca.


Entonces, ¿KVM "la tecnología de virtualización en el kernel de Linux" y qemu-kvm son dos cosas diferentes?
dtmland

@dtmland Bueno, sí. qemu-kvm es un software de usuario que utiliza KVM en el núcleo.
chutz

6

KVM es un módulo de kernel que permite, a través de extensiones de CPU específicas de virtualización, programar una solicitud de CPU de VM directamente en la CPU y RAM del host, con una cantidad mínima de sobrecarga. QEMU proporciona el resto del hardware emulado, porque una máquina, incluso virtual, no es solo una CPU, es una gran cantidad de hardware adicional. QEMU también puede emular la CPU, pero en comparación con la forma en que KVM lo hace, es dolorosamente lenta, por lo tanto, la fusión, para obtener lo mejor de ambos mundos

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.