KVM vs QEMU
KVM
linux-kvm.orgQEMU
qemu.orgSide by side
| Figure | KVM | QEMU |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | Yes |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 3 | 2 |
| Spec score · Server Virtualization Software | 8.5 (#2) | 8.5 (#3) |
| Spec score · Hypervisor Software | 8.6 (#4) | 8.5 (#7) |
| Spec score · Virtual machine software | 8.7 (#4) | 9.0 (#2) |
| Developer extensibility | KVM capabilities are discovered with KVM_CHECK_EXTENSION, allowing applications to detect optional functionality before using it. | The documentation covers QAPI-generated monitor commands, QMP, HMP and numerous interoperability protocols. |
| Documentation depth | Documentation spans the KVM FAQ, Linux kernel API references, QEMU documentation, distribution guides and libvirt documentation rather than one centralized help center. | Official documentation includes user, system-emulation, device, security, interoperability and developer sections, with additional wiki material. |
| Free plan | Yes | Yes |
| Public API | The kernel KVM API is exposed through file descriptors and ioctl calls for system, virtual-machine, vCPU and device control. | QEMU Machine Protocol is a JSON protocol for applications to control QEMU at machine level. |
| Rating on Capterra | 4.0 out of 5 from 2 reviews | 4.7 out of 5 from 3 reviews |
| Security model | Red Hat’s virtualization security guide states that KVM guests run as Linux processes and use Linux isolation controls such as SELinux. | QEMU defines guest isolation requirements and recommends least privilege for processes and resources. |
| What it does | KVM is an open-source Linux virtualization technology that lets Linux operate as a hypervisor for multiple isolated virtual machines. | QEMU is an open-source machine emulator and virtualizer. |
Plans
KVM
- KVM open-source softwareFree
- KVM open-source softwareFree
- KVM commercial supportPriced on request
In their own words
KVM
KVM is an open-source virtualization solution for Linux hosts with Intel VT or AMD-V extensions. It runs multiple virtual machines using unmodified Linux or Windows images, each with virtualized hardware such as a network card, disk, and graphics adapter. The documented capabilities include live migration, nested guests, CPU and PCI hotplug, virtio devices, and device assignment; snapshots and GPU acceleration are also listed. KVM’s kernel component is part of mainline Linux, while its userspace component is part of mainline QEMU. Linux distributions commonly package the required modules and tools, and Windows guest drivers are available separately. Documented processor coverage includes Intel, AMD, ARM, PowerPC, and 64-bit S390 systems. KVM can be used with upper layers including QEMU, libvirt, OpenStack, and oVirt. It is available for Linux and self-hosted use, and the listed plan is free. The host must have Intel VT or AMD-V virtualization extensions.
QEMU
QEMU is a free, open-source machine emulator and virtualizer. System emulation models an entire machine, including its CPU, memory and devices, so it can run a guest operating system. User-mode emulation runs processes built for one CPU architecture on another. The package also includes qemu-img, a command-line utility for creating, converting and modifying disk images. QEMU can work with KVM, Xen and Hypervisor.Framework so guests can run directly on the host CPU. Supported build platforms include Linux, macOS, FreeBSD, NetBSD, OpenBSD and Windows. Windows support is limited to 64-bit, while macOS requires the newest version currently available; support for the prior version is eventually dropped. For complex networking and storage configurations, the project recommends management tools such as virt-manager. Its security guidance distinguishes virtualization with an accelerator and listed machine type from TCG non-virtualization use, which does not provide guest-isolation or security guarantees. QEMU is released under GNU GPL version 2, with some components under specific licenses.