libvirt vs Qemu: What are the differences?
What is libvirt? An open-source virtualization API. It is an open-source API, daemon and management tool for managing platform virtualization. It can be used to manage KVM, Xen, VMware ESXi, QEMU and other virtualization technologies.
What is Qemu? A generic and open source machine emulator and virtualizer. When used as a machine emulator, it can run OSes and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, it achieves very good performance When used as a virtualizer, it achieves near native performance by executing the guest code directly on the host CPU. it supports virtualization when executing under the Xen hypervisor or using the KVM kernel module in Linux. When using KVM, it can virtualize x86, server and embedded PowerPC, 64-bit POWER, S390, 32-bit and 64-bit ARM, and MIPS guests..
libvirt belongs to "Virtual Machine Management" category of the tech stack, while Qemu can be primarily classified under "Virtualization Platform".
Some of the features offered by libvirt are:
- manage virtualization platforms
- accessible from C, Python, Perl, Java and more
- supports KVM, QEMU, Xen, Virtuozzo, VMWare ESX, LXC, BHyve and more
On the other hand, Qemu provides the following key features:
- machine emulator and virtualizer