QEMU

Definition
QEMU (Quick EMUlator) is an open-source machine emulator and virtualizer that allows users to run operating systems and applications designed for one hardware architecture on a different architecture. It is widely used for virtualization, software testing, and development because of its flexibility and broad hardware support.
As an emulator, QEMU translates machine instructions to enable cross-platform compatibility (for example, running ARM software on an x86 machine). As a virtualizer, when combined with hardware acceleration technologies such as KVM (Kernel-based Virtual Machine), QEMU runs guest systems with near-native performance. Businesses and developers use QEMU for virtualization, embedded system development, and cross-platform testing.
Advanced
QEMU supports full system emulation and user-mode emulation. Full system emulation provides virtual hardware including CPU, memory, disks, and network interfaces, enabling entire operating systems to run. User-mode emulation allows individual applications compiled for one architecture to run on another.
When integrated with KVM on Linux, QEMU leverages CPU extensions like Intel VT-x or AMD-V to achieve high performance. QEMU also supports snapshotting, live migration, and device passthrough, making it suitable for advanced virtualization scenarios in enterprise and cloud environments. It can emulate a wide range of architectures including x86, ARM, PowerPC, MIPS, and RISC-V, making it an essential tool in multi-platform development and research.
Why it matters
Use cases
Metrics
Issues
Example
A software company developing ARM-based IoT applications uses QEMU to emulate ARM devices on x86 developer machines. This eliminates the need for physical hardware during early development and accelerates testing across multiple architectures.