relacionamento de entendimento entre o Qemu e o KVM

17

Qual é a diferença entre o KVM e o Qemu? Pelo que entendi, o último é capaz de fornecer "emulação de modo de usuário", o que significa que é possível executar um único executável construído para alguma 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 apenas uma tradução dinâmica é executada, mas toda a máquina virtual é emulada (placa de vídeo, placa de som, placas de rede, dispositivos óticos, etc.). Por exemplo:

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

Como entendi, a Qemu não sabe como aproveitar a virtualização de hardware (por exemplo, as soluções Intel VT-x ou AMD-V na arquitetura x86) e esse é o caso em que o KVM pode ajudar - é possível iniciar o Qemu com Suporte KVM. No entanto, o KVM fornece outras funcionalidades além do acesso a programas de emulação para virtualização assistida por hardware em arquiteturas de hardware específicas? É possível criar toda a máquina virtual (CPU, placa de vídeo, dispositivos de E / S etc) usando apenas KVM? Se sim, quais programas devem ser usados para criar e controlar essa máquina virtual?

    
por Martin 23.05.2012 / 18:55

2 respostas

15

Você está parcialmente correto. Apenas tenha 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 . Esta alegaçã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 para o Projeto KVM explica essa diferença muito bem também.

Uma coisa a mais em mente é que as vantagens do qemu-kvm estão sendo mescladas nos novos lançamentos do qemu, então espero que um dia a diferença entre os dois desapareça.

    
por 23.05.2012 / 19:18
6

O KVM é um módulo do kernel que permite, através de extensões de CPU específicas de virtualização, programar uma solicitação de CPU de VMs diretamente na CPU e 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 com a forma como o KVM faz isso, é dolorosamente lento, então a fusão, para obter o melhor dos dois mundos

    
por 24.05.2012 / 08:30