Jaka jest różnica między KVM a Qemu? Jak rozumiem, ten ostatni jest w stanie zapewnić „emulację trybu użytkownika”, co oznacza, że można uruchomić jeden plik wykonywalny zbudowany dla innej architektury, takiej jak ta:
# 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
#
... i „emulacja komputera”, co oznacza, że wykonywane jest nie tylko dynamiczne tłumaczenie binarne, ale także emulowana jest cała maszyna wirtualna (karta graficzna, karta dźwiękowa, karty sieciowe, urządzenia optyczne itp.). Na przykład:
# qemu-system-sparc64 -hda hda.img -cdrom debian-6.0.5-sparc-CD-1.iso -boot d
Jak zrozumiałem, Qemu nie wie, jak wykorzystać wirtualizację sprzętową (na przykład rozwiązania Intel VT-x lub AMD-V w architekturze x86) i w tym przypadku KVM może pomóc - można uruchomić Qemu ze wsparciem KVM. Czy KVM zapewnia jednak inne funkcje oprócz dostępu programów emulujących do wirtualizacji wspomaganej sprzętowo na określonych architekturach sprzętowych? Czy można utworzyć całą maszynę wirtualną (procesor, kartę graficzną, urządzenia we / wy itp.) Przy użyciu tylko KVM? Jeśli tak, to jakich programów należy użyć do tworzenia i kontrolowania tej maszyny wirtualnej?
źródło
Odpowiedzi:
Częściowo masz rację. Bądź ostrożny, ponieważ mogą wystąpić pewne nieporozumienia. KVM to nazwa technologii wirtualizacji w jądrze Linuksa.
KVM jest również powszechnie używany jako nazwa rozwidlenia (dokładniejszą nazwą byłoby qemu-kvm) projektu QEMU z lepszą obsługą wirtualizacji sprzętowej . Twierdzenie to zostało potwierdzone przez projekt QEMU , ale od wersji 1.3 QEMU wszystkie funkcje qemu-kvm zostały połączone .
Strona pobierania dla projektu KVM wyjaśnia tę różnicę całkiem dobrze także.
Należy jeszcze pamiętać, że zalety qemu-kvm są łączone w nowszych wersjach qemu, więc mam nadzieję, że pewnego dnia różnica między nimi zniknie.
źródło
KVM to moduł jądra, który umożliwia, poprzez rozszerzenia specyficzne dla wirtualizacji, planowanie harmonogramu żądań CPU VMs bezpośrednio w CPU hosta i pamięci RAM, przy minimalnym nakładzie pracy. QEMU zapewnia resztę emulowanego sprzętu, ponieważ maszyna, nawet wirtualna, to nie tylko procesor - to dużo dodatkowego sprzętu. QEMU może również emulować procesor, ale w porównaniu do sposobu, w jaki robi to KVM, jest boleśnie powolny, a zatem łączy się, aby uzyskać to, co najlepsze z obu światów
źródło