Qual é a diferença entre KVM e Qemu? Pelo que entendi, este último é capaz de fornecer "emulação de modo de usuário", o que significa que é possível executar um único executável criado para outra arquitetura 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
#
..e "emulação de computador", o que significa que não somente é realizada a tradução binária dinâmica, mas também é imitada a máquina virtual (placa de vídeo, placa de som, placas de rede, dispositivos ópticos etc.). Por exemplo:
# qemu-system-sparc64 -hda hda.img -cdrom debian-6.0.5-sparc-CD-1.iso -boot d
Como eu entendi, o Qemu não sabe tirar proveito da virtualização de hardware (por exemplo, soluções Intel VT-x ou AMD-V na arquitetura x86) e este é o caso em que a KVM pode ajudar - é possível iniciar o Qemu com o suporte da KVM. No entanto, o KVM fornece outras funcionalidades além do acesso de programas de emulação à virtualização assistida por hardware em arquiteturas de hardware específicas? É possível criar uma máquina virtual inteira (CPU, placa de vídeo, dispositivos de E / S, etc.) usando apenas KVM? Se sim, quais programas se deve usar para criar e controlar essa máquina virtual?
Respostas:
Você está parcialmente correto. Apenas tome cuidado, pois pode haver alguma confusão. KVM é o nome da tecnologia de virtualização no kernel do Linux.
O KVM também é comumente usado como o nome de um fork (um nome mais preciso seria qemu-kvm) do projeto QEMU, com melhor suporte para a virtualização de hardware . Essa afirmação foi confirmada pelo projeto QEMU , mas a partir da versão 1.3 do QEMU, todos os recursos do qemu-kvm foram mesclados .
A página de download do projeto KVM explica essa diferença também.
Mais uma coisa a ter em mente é que as vantagens do qemu-kvm estão sendo mescladas nas versões mais recentes do qemu, então espero que um dia a diferença entre os dois desapareça.
fonte
O KVM é um módulo do kernel que permite, através de extensões de CPU específicas da virtualização, agendar uma solicitação de CPU de VMs diretamente na CPU e na RAM do host, com uma quantidade mínima de sobrecarga. O QEMU fornece o restante do hardware emulado, porque uma máquina, mesmo virtual, não é apenas uma CPU - é um monte de hardware adicional. O QEMU também pode emular a CPU, mas comparado à maneira como o KVM faz, é dolorosamente lento, portanto, a fusão, para obter o melhor dos dois mundos
fonte