Generated by GPT-5-mini| QEMU | |
|---|---|
| Name | QEMU |
| Developer | Fabrice Bellard; QEMU Project; Red Hat |
| Released | 2003 |
| Operating system | Linux; FreeBSD; Solaris; Microsoft Windows |
| Platform | x86; ARM; PowerPC; SPARC; MIPS; RISC-V |
| Genre | Emulator; Virtualizer |
| License | GNU Lesser General Public License |
QEMU QEMU is a free and open-source machine emulator and virtualizer that enables running software compiled for one instruction set on a different instruction set and providing full-system emulation for diverse platforms. It is used across software development, research, server consolidation, embedded systems, and cloud computing contexts where interoperability with architectures such as x86, ARM, PowerPC, SPARC, MIPS, and RISC-V is required. QEMU integrates with projects and organizations including Red Hat, Linux Foundation, Debian, Fedora, and Canonical while interacting with virtualization ecosystems like KVM, Xen Project, libvirt, Docker, and LXC.
QEMU performs two primary functions: user-mode emulation and system emulation. In user-mode emulation it translates system calls and CPU instructions to allow running binaries from one architecture on another, useful in contexts involving GCC, LLVM, and Binutils toolchains. In system emulation it recreates entire hardware platforms (CPU, motherboard, devices) enabling guests such as Microsoft Windows, FreeBSD, NetBSD, OpenBSD, and various Linux distributions to run on host hardware with different ISAs. Integration with Kernel-based Virtual Machine (KVM) converts QEMU into a hypervisor, accelerating virtualization on hosts like Ubuntu, Red Hat Enterprise Linux, and SUSE Linux Enterprise Server.
QEMU was created by French programmer Fabrice Bellard in 2003 and subsequently attracted contributions from individuals and organizations including Inria, Red Hat, Suse, and independent developers. Over time its roadmap intersected with projects such as KVM (initially developed by Qumranet and later acquired by Red Hat), enabling hardware-assisted virtualization. Major milestones include integration with libvirt for management, adoption across distributions like Debian and Fedora, and support for modern ISAs such as RISC-V through community porting efforts. The project has been discussed at conferences including LinuxCon, FOSDEM, USENIX, and ACM events where maintainers and contributors outline optimizations and new device models.
QEMU's architecture separates CPU emulation, device models, I/O, and management. The Tiny Code Generator (TCG) translates guest instructions to host instructions at runtime, enabling dynamic binary translation used when hardware acceleration such as Intel VT-x or AMD-V is unavailable. When used with KVM QEMU delegates CPU execution to the host kernel, while retaining device emulation and I/O forwarding; this interplay is central to deployments with libvirt, virt-manager, and orchestration stacks like OpenStack and Kubernetes. Device models include emulations of adapters and peripherals compatible with systems such as OVMF firmware, VirtIO paravirtualized drivers developed alongside projects like Red Hat and IBM, and storage backends including QCOW2 image format, which supports snapshots and compression. Networking components interact with utilities like iptables, NetworkManager, and Open vSwitch to enable bridged, NAT, and macvtap configurations.
QEMU is used for cross-architecture development, regression testing, continuous integration, and binary compatibility layers in projects such as Android porting, Chromium OS development, and embedded Linux builds driven by Yocto Project or Buildroot. Cloud providers and virtualization vendors employ QEMU in conjunction with KVM to run virtual machines for consumers and enterprises, often managed by orchestration projects like OpenStack or container platforms such as Docker Swarm and Kubernetes when nested virtualization or mixed workloads are required. Academic research and security testing leverage QEMU for instrumented execution with tools like Valgrind, GDB, and fuzzers derived from American Fuzzy Lop to analyze operating systems and applications.
Performance depends on workload, host CPU features, and whether KVM or hardware acceleration is available. Techniques to improve throughput include enabling HugePages on Linux, using paravirtualized drivers (VirtIO) for network and block devices, CPU pinning with cgroups and systemd affinity settings, and employing storage optimizations such as raw images on fast block devices and caching modes. Projects like SPICE and VFIO integrate with QEMU for optimized graphics and direct device assignment, respectively. Benchmarking often references suites such as SPEC CPU, Phoronix Test Suite, and in-house tests run by vendors like Red Hat and IBM to tune memory, I/O, and emulation paths.
QEMU is distributed primarily under the GNU Lesser General Public License (LGPL) with portions under the GNU General Public License (GPL) and permissive licenses. Its development model involves a public Git repository, mailing lists, and code review processes used by communities surrounding Linux Kernel Mailing List, GitHub, and distribution maintainers from Debian, Fedora, and Arch Linux. Corporate contributors include Red Hat, IBM, Google, and independent contributors originating from academic institutions such as University of Cambridge and EPFL. The project hosts regular release cycles, with maintenance coordinated by maintainers and contributors collaborating at events like FOSDEM and company-sponsored summits.
QEMU has been subject to security advisories and hardening efforts addressing issues in device emulation, parsing of guest media, and privileged interfaces when integrated with KVM. Vulnerabilities have been reported and patched through coordinated disclosure channels used by vendors like Red Hat and repositories overseen by security teams from Canonical and Debian Security. Mitigations include sandboxing techniques, introducing seccomp filters inspired by Docker and OpenBSD pledge-style approaches, continuous fuzzing campaigns leveraging tools from Google OSS-Fuzz and independent projects, and using hardware isolation technologies from Intel and AMD. Administrators employ defense-in-depth with up-to-date releases, minimized device exposure, and integration with host security frameworks such as SELinux and AppArmor.
Category:Free and open-source software