QEMU (Quick Emulator) is a high-performance open-source tool that functions as both a machine emulator and a virtualizer. It provides full system emulation, including the CPU and various hardware peripherals, enabling software designed for one architecture (such as ARM or PowerPC) to run on a different host architecture like x86_64.
How it works
The software employs a Tiny Code Generator (TCG) to perform binary translation of guest instructions into host instructions in real-time. When integrated with the KVM kernel module on Linux, QEMU bypasses software emulation for the CPU, utilizing hardware virtualization extensions (Intel VT-x or AMD-V) to achieve near-native execution speeds.
- Support for
qcow2disk images with copy-on-write and snapshot capabilities. - High-performance I/O through
virtiodrivers for networking and storage. - Live migration support to move running VMs between physical hosts.
QEMU is a standard component in cloud infrastructures and serves as the backend for Proxmox VE and OpenStack. A typical command to launch a VM with 4GB of RAM and KVM support is qemu-system-x86_64 -enable-kvm -m 4G -hda system.img. This flexibility makes it essential for kernel debugging, cross-compilation testing, and legacy software support.