В чем разница между KVM и Qemu? Как я понимаю, последний может обеспечить «эмуляцию режима пользователя», что означает, что можно запустить один исполняемый файл, созданный для какой-то другой архитектуры, например:
# 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
#
... и "компьютерная эмуляция", что означает, что выполняется не только динамический двоичный перевод, но и вся виртуальная машина (видеокарта, звуковая карта, сетевые карты, оптические устройства и т. д.). Например:
# qemu-system-sparc64 -hda hda.img -cdrom debian-6.0.5-sparc-CD-1.iso -boot d
Как я понял, Qemu не знает, как использовать преимущества аппаратной виртуализации (например, решения Intel VT-x или AMD-V на архитектуре x86), и это тот случай, когда KVM может помочь - можно запустить Qemu с поддержкой KVM. Однако обеспечивает ли KVM какую-либо другую функциональность, кроме доступа программ эмуляции к аппаратной виртуализации на определенных аппаратных архитектурах? Можно ли создать целую виртуальную машину (ЦП, видеокарта, устройства ввода-вывода и т. Д.), Используя только KVM? Если да, то какие программы следует использовать для создания и управления этой виртуальной машиной?
Ответы:
Вы частично правы. Просто будьте осторожны, так как может быть некоторая путаница. KVM - это название технологии виртуализации в ядре Linux.
KVM также обычно используется в качестве имени форка (более точное имя - qemu-kvm) проекта QEMU с лучшей поддержкой аппаратной виртуализации . Это утверждение было подтверждено проектом QEMU , но начиная с версии 1.3 QEMU все функции qemu-kvm были объединены .
Страница загрузки для проекта KVM объясняет , что разница довольно хорошо , как хорошо.
Еще одна вещь, которую нужно иметь в виду, заключается в том, что преимущества qemu-kvm объединяются в более новых выпусках qemu, поэтому я надеюсь, что однажды разница между ними исчезнет.
источник
KVM - это модуль ядра, который позволяет через определенные расширения виртуализации ЦП планировать запрос ЦП виртуальных машин непосредственно в ЦП и ОЗУ хоста с минимальными издержками. QEMU предоставляет остальную часть эмулируемого оборудования, потому что машина, даже виртуальная, это не просто процессор - это много дополнительного оборудования. QEMU также может эмулировать процессор, но по сравнению с тем, как это делает KVM, он мучительно медленный, поэтому объединяется, чтобы получить лучшее из обоих миров
источник