It is a generic and open-source machine emulator and virtualizer. When used as a machine emulator, QEMU can run OS and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, Qemu achieves very good performance.
Some of the Important Features are mentioned Below:
- Qemu is a complete and standalone software ,it emulates the target operating system.
- Qemu supports Para virtualization
- To emulate more than just the processor, Qemu includes a long list of peripheral emulators: disk, network, VGA, PCI, USB, serial/parallel ports, etc.
KVM (Kernel Virtual Machine)
KVM is a Linux kernel module that allows a user space program to utilize the hardware virtualization features of various processors. Some of the Important Features are mentioned below:
- KVM supports full virtualiztion
- KVM is a fork of the Qemu executable, Both teams work actively to keep the difference at a minimum
- Apart from the processor state switching, the kernel module also handles a few low-level parts of the emulation, like the MMU registers (used to handle VM) and some parts of the PCI emulated hardware.
The KVM project is maintaining a fork of QEMU called qemu-kvm. it still provides the best performance and certain additional features for using KVM with QEMU on x86. Any other architecture is already fully supported by QEMU itself. The goal is to merge all remaining feature differences into QEMU upstream.