What’s the difference between KVM, QEMU and libvirt

kvmlibvirtqemuvirsh

I'm trying to understand how all the components of the VM ecosystem fit together.

What's the difference between:

  • KVM
  • QEMU
  • libvirt

Which is controlled by virsh and virt-install?

This comment says that libvirt is an abstraction ontop of QEMU, which is an abstraction ontop of KVM. However the official QEMU docs say that QEMU is a processor emulator, which sounds like the lowest level component.

Best Answer

Qemu is the lowest level that emulates processor and peripherals. KVM is to accelerate it if the CPU has VT enabled. Libvirt provides a daemon and client to manipulate VMs for convenience. See also Difference between KVM and QEMU on Server Fault.

Related Question