manconceptsReviewed July 15, 2026
QEMU, KVM, and libvirt: division of responsibility
KVM provides kernel virtualization, QEMU models the machine and devices, and libvirt supplies a stable management contract around both. Component roles | Layer | Primary responsibility | | | | | KVM | CPU and memory virt
qemukvmlibvirtkernel
KVM provides kernel virtualization, QEMU models the machine and devices, and libvirt supplies a stable management contract around both.
Component roles
| Layer | Primary responsibility |
|---|---|
| KVM | CPU and memory virtualization in the Linux kernel |
| QEMU | Machine model, device emulation, process execution |
| libvirt | Definitions, lifecycle API, policy integration, orchestration |
| virsh | Operator CLI using the libvirt API |
Inspect a running domain
BASH
virsh dominfo guest01
virsh domxml-to-native qemu-argv /etc/libvirt/qemu/guest01.xml
ps -eo pid,cmd | grep '[q]emu-system'The native QEMU command is derived output. Manage the persistent domain XML through libvirt rather than editing QEMU command lines or generated runtime files.