Verständnis der Beziehung zwischen Qemu und KVM


17

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?


2
Mögliches Duplikat des Unterschieds zwischen KVM und QEMU

Antworten:


16

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.


KVM "die Virtualisierungstechnologie im Linux-Kernel" und qemu-kvm sind also zwei verschiedene Dinge?
dtmland

@dtmland Na ja. qemu-kvm ist eine Userland-Software, die KVM im Kernel verwendet.
Chutz

6

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.