Was ist der Unterschied zwischen KVM und Qemu? Soweit ich weiß, kann letzterer eine "Benutzermodus-Emulation" bereitstellen, was bedeutet, dass eine einzelne ausführbare Datei ausgeführt werden kann, die für eine andere Architektur wie diese erstellt wurde:
# 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
#
..und "Computer-Emulation", dh es wird nicht nur eine dynamische Binärübersetzung durchgeführt, sondern die gesamte virtuelle Maschine (Grafikkarte, Soundkarte, Netzwerkkarten, optische Geräte usw.) emuliert. Beispielsweise:
# qemu-system-sparc64 -hda hda.img -cdrom debian-6.0.5-sparc-CD-1.iso -boot d
Ich habe verstanden, dass Qemu nicht weiß, wie man die Vorteile der Hardwarevirtualisierung nutzt (zum Beispiel Intel VT-x- oder AMD-V-Lösungen auf x86-Architekturen). In diesem Fall kann KVM helfen, Qemu mit KVM-Unterstützung zu starten. Stellt KVM jedoch neben dem Zugriff für Emulationsprogramme auf hardwaregestützte Virtualisierung auf bestimmten Hardwarearchitekturen weitere Funktionen bereit? Ist es möglich, eine ganze virtuelle Maschine (CPU, Grafikkarte, E / A-Geräte usw.) nur mit KVM zu erstellen? Wenn ja, mit welchen Programmen sollte diese virtuelle Maschine erstellt und gesteuert werden?
Antworten:
Sie haben teilweise recht. Sei einfach vorsichtig, da es Verwirrung geben kann. KVM ist der Name der Virtualisierungstechnologie im Linux-Kernel.
KVM wird auch häufig als Name eines Forks (genauer gesagt als qemu-kvm) des QEMU-Projekts verwendet, das die Hardwarevirtualisierung besser unterstützt . Diese Behauptung wurde vom QEMU-Projekt bestätigt , aber ab Version 1.3 von QEMU wurden alle Funktionen von qemu-kvm zusammengeführt .
Die Download-Seite für das KVM-Projekt erklärt diesen Unterschied ebenfalls sehr gut.
Eine weitere Sache, die Sie beachten sollten, ist, dass die Vorteile von qemu-kvm in den neueren Versionen von qemu zusammengeführt werden. Ich hoffe, dass eines Tages der Unterschied zwischen den beiden verschwinden wird.
quelle
KVM ist ein Kernelmodul, mit dem durch virtualisierungsspezifische CPU-Erweiterungen eine VM-CPU-Anforderung direkt in der Host-CPU und im RAM mit minimalem Overhead geplant werden kann. QEMU stellt den Rest der emulierten Hardware bereit, da eine Maschine, selbst eine virtuelle, nicht nur eine CPU ist - es handelt sich um eine Menge zusätzlicher Hardware. QEMU kann auch die CPU emulieren, aber im Vergleich zu KVM ist es schmerzhaft langsam, das Beste aus beiden Welten herauszuholen
quelle