QEMU

A versatile open-source machine emulator and virtualizer capable of simulating various hardware architectures and running virtual machines.

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 qcow2 disk images with copy-on-write and snapshot capabilities.
  • High-performance I/O through virtio drivers 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.