Fact-checked by Grok 2 weeks ago

QEMU

QEMU is a free and open-source machine emulator and virtualizer capable of emulating complete systems or individual user-mode applications across a wide range of CPU architectures. Developed by French programmer Fabrice Bellard and first released in 2003, it employs dynamic binary translation via its Tiny Code Generator (TCG) to enable software-based emulation of processors without requiring hardware support. QEMU supports full-system emulation, allowing entire guest operating systems to run on a host machine as if on native hardware, and user-mode emulation for executing binaries compiled for foreign architectures directly on the host CPU. Key features include integration with hypervisors such as KVM on , , and Hypervisor.framework on macOS, which boosts by leveraging the host's CPU extensions for near-native speeds in compatible setups. It emulates numerous architectures as guests, including x86 (32-bit and 64-bit), (A-profile and M-profile), , PowerPC, and others, while building on a variety of host platforms like , Windows, and BSD variants. QEMU also provides standalone tools, such as qemu-img for managing virtual disk images, making it a versatile component in workflows, development environments, and testing scenarios. Maintained as an open-source project under the GNU General Public License, it is actively developed by a global community and serves as the backend for higher-level platforms like QEMU/KVM in cloud infrastructures.

Introduction and History

Overview and Purpose

QEMU is a free and open-source machine and virtualizer that utilizes dynamic binary translation () to execute code on diverse . This approach allows QEMU to simulate complete computer systems or individual processes by converting instructions from a into executable code for the CPU, enabling seamless operation without requiring the and to share the same instruction set. The primary purposes of QEMU include emulating full systems for operating , supporting cross-architecture , preserving legacy applications on modern hardware, and enabling efficient when combined with hardware accelerators like KVM. In its high-level workflow, QEMU dynamically translates and optimizes guest instructions on-the-fly, providing a flexible layer that operates independently of features. This distinguishes QEMU from pure hardware virtualizers, as it emphasizes portability—for instance, running ARM-based guests on x86 hosts—allowing developers and users to test and deploy software across a wide range of architectures without architecture-specific dependencies. QEMU's versatility has led to widespread adoption in production environments, powering tools such as the , which builds directly on QEMU for simulating Android devices; , which employs QEMU for device emulation within its Xen-based virtual machines; and cloud platforms like , where it supports multi-architecture instance emulation for scalable deployments. Its support for both user-mode (for running individual binaries) and system (for full OS environments) further enhances its utility in diverse cross-platform scenarios.

Development History

QEMU was originally developed by French programmer as an open-source project initiated in 2003, primarily designed to enable the execution of x86 binaries on non-x86 host systems through user-mode . This initial focus addressed the need for cross-platform binary compatibility without requiring full system , marking QEMU's debut as a lightweight dynamic tool. Key early milestones included the project's first public release in December 2003, which laid the foundation for its capabilities, and the introduction of the Tiny Code Generator (TCG) in 2007, a portable dynamic engine that enhanced QEMU's performance and cross-host portability by replacing architecture-specific code generators. After eight years of iterative development, QEMU achieved its first stable release, version 1.0, in December 2011, incorporating over 20,000 commits from approximately 400 contributors and solidifying its transition from a solo endeavor to a collaborative effort. During the 2010s, QEMU experienced significant growth in device capabilities and deeper integrations with hypervisors such as KVM and , enabling near-native performance for virtualized environments and expanding its utility beyond pure . This period also saw the project evolve from Bellard's individual maintenance to a community-driven initiative hosted under qemu.org, with increased contributions fostering broader architecture support, including and PowerPC. In the 2020s, QEMU continued its advancement with version 8.0 in April 2023, which introduced substantial improvements to RISC-V support, including ACPI compatibility, enhanced PMP propagation, and fixes for mret exceptions and uncompressed instructions. Version 9.0, released in April 2024, added KVM acceleration for the LoongArch architecture, encompassing LSX and LASX vector extensions, alongside updates to the LoongArch boot process. Building on this momentum, QEMU 10.0 arrived in April 2025, featuring emulation for ARM's Secure EL2 physical and virtual timers, as well as support for the FEAT_AFP, FEAT_RPRES, and FEAT_XS architectural extensions. The subsequent QEMU 10.1 release in August 2025 further advanced confidential computing with KVM support for Intel TDX guests and initialization of AMD SEV-SNP virtual machines via IGVM files, while introducing nested KVM virtualization on ARM. QEMU's governance has matured alongside its technical evolution, migrating its primary repository to GitLab in 2019 to streamline collaboration. Major contributions now come from organizations including Red Hat, Linaro, and AMD, as reflected in the project's MAINTAINERS file, supporting an annual release cycle established since 2012. Recent 2025 enhancements, such as ARM CXL support on the 'virt' board and refinements to RISC-V vector extensions, underscore ongoing efforts to address emerging hardware demands in nested virtualization and accelerator integration.

Licensing and Governance

Licensing Terms

QEMU is released under the GNU General Public License version 2 (GPLv2), which applies to the core emulator and imposes requirements on modifications and distributions to ensure that derivative works remain . This guarantees users the freedom to run, study, share, and modify the software, while requiring that any redistributed versions include the complete corresponding . The GPLv2 grants broad distribution rights, allowing QEMU to be freely used, modified, and redistributed in source or , provided that binaries are accompanied by the source code or an offer to provide it. Parts of QEMU, such as the Tiny Code Generator (TCG), are licensed under compatible terms like the BSD license, enabling their reuse in other projects while maintaining overall compatibility with GPLv2. For users integrating QEMU into proprietary software, dynamic linking permits such combinations without necessitating the release of the proprietary , as the components operate as separate works. However, static linking with QEMU's GPLv2 code creates a , triggering the requirement to disclose the full under GPLv2 terms. QEMU's licensing has remained stable since its initial release in under GPLv2, with no major changes to the core terms, though some individual files include "or later" clauses permitting compatibility with GPLv3. In commercial products like , which incorporates QEMU, compliance involves providing availability to meet GPLv2 obligations, aligning with Proxmox's own AGPLv3 licensing.

Development Community

The QEMU project is maintained by a collaborative open-source community under the auspices of the and hosted at qemu.org. Governance is provided by a project committee comprising representatives from key organizations, including Alex Bennée, Paolo Bonzini, Andreas Färber, Alexander Graf, Stefan Hajnoczi from , and Peter Maydell from Linaro, who vote on project direction via . Contributions to QEMU are primarily submitted as patches via email to the qemu-devel , rather than through merge requests, to facilitate review by maintainers and the broader community. Discussions on development topics, subsystem-specific issues, and patch reviews occur on dedicated mailing lists such as qemu-devel and qemu-arm. The project organizes an annual QEMU , typically held alongside the , to coordinate planning, discuss priorities, and align on future roadmaps. Prominent individual contributors beyond founder include Paolo Bonzini, who leads KVM maintenance and enhancements; Peter Maydell, responsible for architecture ; and Alistair Francis, who oversees support and related developments. Corporate backing plays a significant role, with contributors like providing resources for hardware-specific features, including support for the Versal SoC family. Other ongoing sponsors provide infrastructure such as cloud credits and compute hosts from organizations including , , , and . The community utilizes a range of tools and resources to support development, including the QEMU for documentation and guidelines, a comprehensive portal covering build instructions and APIs, and (CI) systems like CI and Patchew that perform automated testing across multiple host architectures and configurations. As of 2025, QEMU has benefited from contributions by over 1,000 unique developers across its history, reflecting its growth as a mature open-source project. A current focus is the integration of for developing new components, such as device models, with recent updates allowing a minimum Rust version of 1.83 for builds to enable safer and more modular code without extensive unsafe Rust usage.

Operating Modes

User-Mode Emulation

User-mode emulation in QEMU allows the execution of individual user-space binaries compiled for one CPU on a with a different , leveraging the 's operating without simulating a , , or full environment. This mode is particularly useful for running applications like ARM ELF binaries directly on an x86 , enabling seamless operation of foreign code in a shared OS context. At its core, the mechanism employs dynamic binary translation (DBT) to convert guest instructions from the target architecture into native host instructions for efficient execution. QEMU intercepts system calls issued by the guest application and maps them to equivalent host OS calls, accommodating architectural variances such as endianness, 32-bit versus 64-bit addressing, and device-specific operations like ioctl(). This translation occurs without emulating privileged kernel modes or hardware peripherals, relying instead on the host kernel for underlying services. Key use cases for user-mode emulation include cross-compilation testing to verify binaries on target architectures during development, debugging foreign applications via integration with tools like GDB (e.g., using the -g option to connect on port 1234), and porting software to new platforms by executing code from architectures like MIPS on a Linux x86 host. A representative command to invoke this mode is qemu-arm program [arguments...], which launches an ARM binary on an x86 system, with similar variants available for other architectures such as qemu-mips. It is limited to non-privileged user-space , including multi-process and multi-threaded applications that do not require emulation or , offering no support for full OS kernels, device drivers, or privileged modes. It also introduces performance overhead from ongoing instruction translation, which can be mitigated but not eliminated (e.g., via options like -one-insn-per-tb for finer-grained blocks). In contrast to system emulation, which provides complete machine , this mode prioritizes lightweight application-level execution.

System Emulation

QEMU's system emulation mode provides a complete model of a , encompassing the CPU, , and input/output devices, which allows for the installation and execution of a full guest operating system as if running on physical . This capability enables users to simulate entire computer systems across various architectures without requiring the actual , supporting the booting and operation of operating systems in a controlled environment. The workflow in system emulation begins with the simulation of firmware, such as BIOS for legacy systems or UEFI for modern setups, which initializes the virtual hardware and facilitates booting the guest OS from a disk image, network, or direct kernel load. QEMU handles the boot process by emulating the necessary peripherals and passing control to the guest kernel, while supporting multi-CPU configurations through options like -smp to define the number of virtual processors, such as -smp 4 for a quad-core guest. This setup allows for flexible execution, including the emulation of symmetric multiprocessing environments on supported host platforms. Common use cases for system emulation include operating system development, exemplified by booting distributions on emulated to test efforts without access to rare physical machines. It also serves hardware testing scenarios, where developers can validate drivers and system behavior in isolation, and supports migration by enabling the execution of software on newer hosts to ease transitions. Configurations in system emulation are specified via command-line options, such as -machine to select predefined machine types like virt for ARM-based virtual platforms, which provide a standardized set of emulated components. Features like snapshot modes allow saving and restoring the full state for quick resumption or , integrated through the block layer. As of 2025, QEMU supports in emulation mode, though it remains limited by the overhead of full simulation. Performance in pure system is generally slower than hardware-accelerated due to the dynamic translation of guest instructions, but it offers portability across architectures without host-specific dependencies.

Emulation Techniques

Tiny Code Generator (TCG)

The Tiny Code Generator (TCG) serves as QEMU's core dynamic (DBT) engine, functioning as a just-in-time () compiler that enables the of guest processor instructions on a host system. It achieves this by first disassembling guest code into a platform-independent (IR), which captures the semantics of the original instructions in a simplified, optimizable form. This approach allows QEMU to emulate diverse guest architectures without being tied to specific host hardware features for translation. The translation process in TCG proceeds in three main stages: the frontend parses guest instructions and emits TCG IR operations, representing computations as a sequence of basic operations like loads, stores, arithmetic, and branches. The IR then passes through an optimization phase, where techniques such as constant folding—evaluating constant expressions at translation time—and dead code elimination—removing unused computations based on liveness analysis—are applied to reduce the generated code's size and improve execution efficiency. Finally, the backend lowers the optimized IR into host-specific assembly code, which is executed directly on the host CPU after being cached for reuse. This pipeline ensures that translated basic blocks are compact and performant, with the system managing a translation cache to minimize repeated work. TCG was developed and integrated into QEMU in 2007, supplanting the project's earlier interpreter-based backend to deliver substantial gains through on-the-fly . Over time, it has evolved to support increasingly complex instruction sets, with key enhancements focusing on portability and extensibility. As of 2025, recent updates have improved vector (RVV) support by addressing corner cases in vector instructions, enabling more accurate of advanced SIMD workloads. Additionally, the introduction of Rust-based plugins allows developers to create dynamically loadable extensions for TCG, facilitating custom instrumentation and analysis without modifying QEMU's core codebase. One of TCG's primary advantages is its host-agnostic design, which permits QEMU to operate on any supported host architecture while emulating over 20 guest architectures, including x86, , , PowerPC, and . This portability makes TCG ideal for cross-platform , testing, and deployment scenarios where hardware diversity is a factor. Furthermore, its IR-based model facilitates straightforward addition of new guest targets, as frontend translators can focus on architecture-specific decoding without backend concerns. Despite these strengths, TCG has inherent limitations in pure software emulation. The initial translation of uncached guest code blocks introduces overhead, as each new basic block must be dynamically compiled before execution, potentially slowing startup or infrequent code paths. In addition, without hardware acceleration, TCG relies entirely on host CPU cycles for both translation and execution, resulting in emulation speeds that are typically 10-50% of native performance for compute-intensive workloads, depending on the architecture pair. TCG underpins emulation in both user-mode and system-mode operations within QEMU.

Hardware Acceleration

QEMU achieves significant performance improvements in system emulation by leveraging extensions on the host system, offloading the execution of guest CPU instructions to the host kernel rather than relying solely on software emulation. This is facilitated through various backend mechanisms, including the (KVM) on hosts and the Windows Hypervisor Platform (WHPX) utilizing on Windows. These approaches bypass the Tiny Code Generator (TCG) for CPU emulation, allowing guest code to run directly on the host hardware with minimal overhead. In the KVM framework, QEMU operates as the userspace component that manages device emulation and I/O, while the host kernel handles CPU using hardware features like Intel VT-x or AMD-V. This setup supports paravirtualized drivers such as virtio for efficient I/O operations between the and , reducing latency in disk, , and other peripherals. KVM also enables nested , permitting virtual machines to run within other virtual machines, which is useful for development and testing environments. As of 2025, QEMU has incorporated advanced features for enhanced security in hardware-accelerated environments. Support for Trust Domain Extensions (TDX) allows the creation of encrypted virtual machines that protect against host-side attacks, integrated via KVM on kernels version 6.16 and later. Similarly, Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP) provides memory integrity and encryption for guests, with QEMU 10.1 enabling guest launch and attestation for these technologies. On architectures, nested KVM support facilitates secure enclaves and improved stacking, as introduced in QEMU 10.1 for the 'virt' machine type. Hardware acceleration is typically enabled at launch using command-line options such as -accel kvm for KVM or -accel whpx for WHPX, with QEMU automatically falling back to TCG if the required support is unavailable. This requires compatible and enabled in the /, along with appropriate modules or drivers. The primary benefits of these methods include near-native CPU performance, often achieving 90-95% of bare-metal speeds for compute-intensive workloads, and substantial reductions in emulation overhead for I/O-bound tasks through . This makes QEMU suitable for production-grade virtual machines while maintaining its cross-platform portability.

Key Features

Device and Peripheral Emulation

QEMU provides comprehensive emulation of devices and peripherals, enabling virtual machines to interact with simulated components that mimic real-world interfaces. This includes support for a wide range of buses, controllers, and specialized , allowing guest operating systems to boot and operate as if on physical machines. The emulation layer ensures across different host architectures by translating guest accesses to host resources or simulated behaviors. Central to QEMU's device emulation is its handling of CPU architectures, where it offers full (ISA) support for guest systems, including advanced extensions such as ARM's for vector processing and RISC-V's RVV for scalable vector operations. These extensions are through QEMU's dynamic , permitting workloads that leverage SIMD instructions to run accurately in virtual environments without native hardware. For instance, ARM guests can utilize intrinsics for multimedia acceleration, while RISC-V environments benefit from RVV for tasks. QEMU emulates key peripherals through standardized buses like and USB, facilitating the attachment of virtual devices to the guest's . The bus is implemented via host bridges such as the i440FX and chipset bridges like PIIX3, supporting a variety of expansion cards and controllers. USB emulation includes controllers for UHCI (USB 1.1), OHCI (USB 1.1/2.0), EHCI (USB 2.0), and xHCI (), allowing virtual or passthrough USB devices to connect seamlessly. Timers are simulated using components like the (HPET) and (RTC), ensuring precise timekeeping for guest applications. Sound peripherals are supported via models such as the Intel 82801AA AC97 audio controller, alongside legacy options like Creative SoundBlaster 16. Graphics and display emulation in QEMU covers several GPU models to suit different guest needs, including the CLGD 5446 VGA for legacy compatibility, QXL for paravirtualized 2D acceleration, and VirtIO-GPU for efficient modern rendering with support for and . Networking is handled by emulated adapters such as the e1000 series for Ethernet compatibility and VirtIO-net for high-throughput, low-overhead packet processing. Storage interfaces include controllers for traditional hard drives, adapters like LSI 53C895A for enterprise setups, and NVMe controllers for fast SSD emulation, all configurable to interface with virtual block devices. Customization of emulated devices is achieved through the -device command-line option, which allows users to add, configure, or remove peripherals by specifying types, buses, addresses, and properties—for example, -device e1000,netdev=net0 to attach a . Devices can be assigned to specific buses (e.g., bus=pci.0,addr=5) for precise control, and options like --device help list available models. Paravirtualized drivers, particularly the VirtIO family (e.g., VirtIO-blk for , VirtIO-GPU for ), enhance performance by providing guest-aware interfaces that reduce overhead compared to fully emulated . These drivers enable near-native I/O speeds in virtualized environments. As of 2025, QEMU has introduced support for (CXL) devices, enabling coherent memory sharing across accelerators in emulated topologies for architectures such as x86 and . This includes CXL Type 3 memory devices and decoders for interleaving, integrated into the virt machine model.

Disk Image Formats

QEMU supports a variety of formats to enable flexible virtual storage management, allowing users to create, convert, and manipulate disks for and scenarios. The preferred formats include , QCOW2, and VMDK, each offering distinct capabilities for performance, space efficiency, and compatibility. The format provides direct block access to the underlying storage, making it simple and performant for scenarios where no additional features are needed; it supports sparse files (holes) on filesystems that allow them and can utilize preallocation modes such as off, falloc, or full to control space allocation upfront. In contrast, QCOW2 (QEMU version 2) is the most versatile format, supporting operations that enable efficient differencing disks through backing files, where changes are written to a new overlay image without modifying the base. QCOW2 also facilitates , allowing images to grow dynamically as data is written, and includes built-in support for snapshots to capture VM states at specific points. Additionally, VMDK ensures compatibility with environments, supporting subformats like monolithicSparse and options for backing files to maintain . Key features across these formats enhance usability and security. QCOW2 supports using algorithms like zlib or (with compatibility level 1.1), which reduces image size while preserving performance, and has seen enhanced integration for better ratios and speeds as of recent releases. is available in QCOW2, VMDK, and others, minimizing initial footprint. For , QCOW2 integrates LUKS support to secure images with standards-compliant , often layered over the base format for added protection. Backing files in QCOW2 and VMDK enable differencing setups, where a read-only base image is referenced by writable overlays for efficient cloning and testing. The qemu-img utility is the primary tool for managing these formats, supporting creation, conversion, inspection, and checking of images. For example, to create a 20GB QCOW2 image, the command qemu-img create -f qcow2 disk.qcow2 20G allocates the virtual size with enabled by default. Conversions between formats, such as from to QCOW2, use qemu-img convert -f raw -O qcow2 input.raw output.qcow2, preserving features like or where compatible. Advanced preallocation modes in QCOW2 and include metadata (allocating only metadata structures) and full (pre-filling the entire image), optimizing for different workloads like metadata-heavy operations or ensuring consistent . For networked and distributed storage, QEMU integrates with Ceph via the (RADOS Block Device) driver, allowing direct access to Ceph pools as block devices with syntax like -drive file=rbd:poolname/imagename, supporting and snapshots for scalable VM storage.

Management Interfaces

QEMU provides several interfaces for managing virtual machines (VMs) at runtime, enabling users and applications to inspect, control, and configure sessions dynamically. These interfaces facilitate tasks such as querying VM status, modifying configurations, and performing migrations without interrupting the . The primary mechanisms include human-interactive consoles and machine-oriented protocols, which support both ad-hoc administration and automated orchestration in larger ecosystems. The QEMU Monitor serves as a human-readable console for issuing commands to a running VM. It can be accessed via the command-line option -monitor stdio, which directs monitor output to the standard input/output streams, or through /Unix sockets for remote access. This interface supports commands like info status to retrieve VM operational details and migrate to initiate to another host, allowing administrators to monitor and adjust behavior interactively. The Human Monitor Protocol (HMP) underlies this console, providing a line-based, text-oriented command set designed for simplicity and direct user interaction, such as ejecting virtual or freezing CPU execution for . For programmatic control, QEMU implements the QEMU Machine Protocol (QMP), a -based that enables structured communication between external tools and the . QMP supports commands for querying machine state, adding or removing devices, and managing snapshots, with responses formatted in JSON for easy parsing by management software. This protocol is commonly utilized by higher-level tools like libvirt for orchestrating VM lifecycles in enterprise environments. QMP connections are established over or Unix domain sockets, ensuring secure and efficient remote management. The QEMU Object Model (QOM) offers a hierarchical for representing and configuring the emulator's internal components, such as devices and buses, as composable objects. This model allows and of the VM's object tree at , for instance, using the qom-list command to enumerate properties of a specific object like a virtual CPU. QOM facilitates dynamic configuration by exposing objects via paths (e.g., /machine/unattached/device[0]), enabling precise control over parameters without restarting the VM. It serves as the foundation for extending QEMU with custom device models through a type-safe, inheritance-based system. Additional management capabilities include snapshot handling through HMP commands like savevm and loadvm, which capture and restore the full VM state—including RAM, CPU registers, and device states—to a named snapshot file for quick recovery or testing. These operations integrate with QMP equivalents, such as xen-save-devices-state for compatible guests, ensuring consistency across interfaces. In recent developments as of 2025, the Rust integration in QEMU has enabled the creation of custom objects and extensions using the Rust programming language, enhancing safety and modularity in management-related code for device configuration and protocol handling.

Integrations and Ecosystem

KVM Integration

QEMU serves as the user-space frontend for the Linux Kernel-based Virtual Machine (KVM) module, which acts as the backend for hardware-accelerated CPU and memory virtualization. In this architecture, KVM leverages hardware virtualization extensions such as Intel VT-x or AMD-V to execute guest instructions directly on the host CPU, bypassing software emulation for the processor and memory management, while QEMU emulates peripherals, devices, and I/O operations to provide a complete virtual hardware environment for the guest operating system. This division enables near-native performance for compute-intensive tasks, as the guest code runs in a protected kernel-mode context without the overhead of full emulation. Setup for KVM integration typically involves invoking QEMU with the -enable-kvm option to activate the accelerator, which requires a kernel compiled with KVM support and compatible features enabled in the /. Management tools like libvirt simplify configuration by abstracting QEMU command-line options and integrating with for process management, allowing users to define virtual machines via XML descriptors that specify CPU, memory, and device passthrough. For direct device assignment, VFIO (Virtual Function I/O) facilitates passthrough, binding host devices such as GPUs or NICs to the guest for isolated, high-performance access without host interference. Key features of QEMU's KVM integration include , which transfers a running guest's state—including , CPU registers, and contexts—to another with only milliseconds of downtime, ensuring in clustered environments. overcommitment allows allocating more to guests than physically available on the by using techniques like kernel same-page merging and ballooning drivers, optimizing resource utilization in dense deployments. Hugepages support reduces (TLB) overhead by allocating guest memory in larger 2MB or 1GB blocks, configurable via QEMU's -mem-path and libvirt's <hugepages> elements for up to 20-30% gains in memory-bound workloads. VirtIO paravirtualized drivers further enhance I/O efficiency, providing semi-virtualized interfaces for block storage, networking, and consoles that achieve throughput close to bare-metal levels, often exceeding 90% of in networked applications. As of 2025, advancements include nested KVM support on architectures in QEMU 10.1, enabling virtual machines within L1 guests for scenarios like cloud-on-cloud testing, activated via the kvm-arm.mode=nested parameter. Integration with Trust Domain Extensions (TDX) and Secure Encrypted -Secure Nested Paging (SEV-SNP) allows launching confidential guests from Independent Guest (IGVM) files, providing hardware-enforced memory and attestation to protect against or attacks. In server virtualization use cases, QEMU with KVM powers platforms like OpenStack for scalable cloud infrastructure, where Nova computes manage guest lifecycles, and Proxmox VE for integrated hyper-converged storage and clustering, supporting hundreds of VMs per node. This combination delivers performance superior to pure TCG emulation, with KVM-accelerated guests achieving 8-12x higher speeds in cross-architecture workloads due to hardware offloading of CPU execution.

Other Hypervisor and Tool Integrations

QEMU integrates with the hypervisor in hardware virtual machine (HVM) mode, where it serves as the device model for emulating hardware peripherals and managing I/O for paravirtualized guests, enabling efficient resource sharing without full hardware passthrough. In 's PVH mode, a lightweight extension, QEMU supports faster guest boot times by leveraging features while minimizing emulation overhead through paravirtualized drivers and native OS interfaces, avoiding the need for full device emulation. This integration allows to host guests that expect Xen-specific behaviors directly under QEMU-managed environments like Linux/KVM, with mandatory split IRQ chip configuration for compatibility. Libvirt provides a unified management layer for QEMU instances, utilizing the QEMU Monitor Protocol (QMP) to abstract configurations, monitor states, and orchestrate operations across hypervisors including and KVM. This abstraction enables administrators to define and deploy VMs via XML descriptors, handling tasks like and resource allocation without direct interaction with QEMU's , supporting QEMU versions from 6.2.0 onward with multiple accelerators. Libvirt's and tools, such as , simplify scaling QEMU-based deployments in enterprise environments. The Unicorn Engine is a CPU framework derived from QEMU's dynamic core, offering a user-mode for disassembly, code extraction, and tailored to tasks like and execution. It supports multiple architectures including x86, , and , with APIs for memory hooking and state inspection, enabling analysts to emulate isolated code segments without full system overhead—for instance, calculating hashes in obfuscated binaries or inputs. Unicorn's lightweight design facilitates integration into tools like IDA Pro plugins for dynamic analysis, outperforming full-system emulators in targeted scenarios. Proxmox Virtual Environment (Proxmox VE) incorporates QEMU as its backend for KVM-accelerated , providing a web-based for creating, managing, and monitoring instances with features like clustering and . This setup abstracts QEMU's complexities, allowing seamless storage integration and live snapshots via the integrated management console accessible through modern browsers. Google's Emulator relies on QEMU for x86 and system emulation, accelerating app testing on host hardware by translating guest instructions and supporting hardware virtualization extensions for improved performance during development workflows. For targets on x86 hosts, it employs QEMU's dynamic translation to run binaries, configurable via for graphics acceleration like VirGL. serves as a mobile port of QEMU for devices, enabling x86, , PowerPC, and emulation on resource-constrained hardware to run lightweight operating systems such as or directly from portable interfaces. It adapts QEMU's core for touch-based input and rendering, supporting ISO booting and basic peripherals for educational or retro computing use cases. In niche applications, SerialICE extends QEMU with interception for low-level hardware debugging, allowing developers to log interactions, intercept I/O, and attach GDB sessions via a patched instance for analysis. For Amiga emulation, WinUAE integrates QEMU's PowerPC compiler to accelerate 68k-to-PPC bridging, enabling native execution of 4.x workloads with improved performance over pure interpretation, including support for RTG graphics and controllers. As of 2025, QEMU's ecosystem has seen enhanced cloud integrations, such as native support for emulating AWS Nitro Enclaves in version 9.2, allowing developers to simulate isolated execution environments for without proprietary hardware. Additionally, QEMU 10.1 has dropped build support for 11 (Bullseye), aligning with its end-of-life and focusing on newer hosts like 12 and later for security and feature parity.

Supported Architectures

x86

QEMU provides comprehensive emulation for the x86 architecture, supporting both the i386 (32-bit) and x86_64 (64-bit) instruction sets, making it suitable for emulating traditional PC environments. This emulation includes core components of the PC/ISA bus and modern Q35 chipset variants, enabling accurate simulation of x86 hardware configurations from legacy to contemporary systems. The architecture's maturity in QEMU stems from its origins as a PC emulator, allowing for detailed replication of x86-specific behaviors without relying on host hardware acceleration for basic operation. For machine types, QEMU offers the pc-i440fx option, which emulates the legacy i440FX chipset and is ideal for older BIOS-based systems, while the pc-q35 type provides support for the ICH9 chipset with PCIe and is recommended for modern firmware environments. These options can be specified via the -machine command-line parameter, with pc-i440fx serving as the default for in many distributions. The Q35 machine type enhances with boot processes and devices, facilitating smoother integration with contemporary operating systems. Key features in QEMU's x86 emulation include support for SIMD extensions such as and AVX, which are emulated via the Tiny Code Generator (TCG) for software-based execution or accelerated through KVM when available. The (APIC) is fully implemented to enable (), allowing multiple virtual CPUs to operate in parallel for improved performance in multi-threaded workloads. Additionally, passthrough of extensions like VT-x and AMD-V is supported in conjunction with KVM, enabling nested where the guest can itself run virtual machines. Common use cases for QEMU's x86 emulation involve testing Windows and distributions in isolated environments, where developers can verify compatibility across 32-bit and 64-bit variants without physical . It is also widely employed in and development, permitting the of processes, interrupt handling, and low-level interactions on emulated PC platforms. As of 2025, QEMU has introduced support for Trust Domain Extensions (TDX) in version 10.1, allowing the creation of confidential virtual machines that protect guest memory from host access, enhancing security for sensitive x86 workloads under KVM.

QEMU provides comprehensive for architectures, enabling the of both 32-bit and 64-bit systems on various host platforms. It supports the A-profile of the , including the Cortex-A and Cortex-R series processors, which are widely used in mobile, embedded, and server environments. This is facilitated through the Tiny Code Generator (TCG) for software-based translation and can leverage when available. QEMU emulates AArch32 variants based on ARMv7 and ARMv8, allowing execution of legacy 32-bit ARM applications and operating systems, while AArch64 support covers ARMv8 and later versions, reflecting the dominance of 64-bit ARM in modern deployments such as servers and high-end mobile devices. These variants enable developers to target specific instruction sets, with AArch64 being the primary focus for contemporary workloads due to its enhanced scalability and performance features. For machine models, QEMU offers the generic "virt" platform, which provides a flexible, non-hardware-specific environment suitable for testing operating systems like on servers; the models (raspi2 and raspi3) emulate popular single-board computers for embedded development; and the Versatile Express (vexpress) board supports evaluation of development kits. These models include peripherals such as UARTs, timers, and storage controllers, allowing full system boot without physical hardware. Key features in QEMU's ARM emulation include support for ARM TrustZone security extensions, which enable secure world execution alongside normal world operations, configurable via machine parameters like secure=on for the virt platform. Vector processing is enhanced by Scalable Vector Extension 2 (SVE2), providing advanced SIMD capabilities for compute-intensive tasks, with full TCG emulation available since QEMU 6.1. The Generic Interrupt Controller version 3 (GICv3) handles scalable interrupt distribution across multiple cores, essential for multiprocessor systems. Recent 2025 updates in QEMU 10.0 introduced emulation for Secure EL2 physical and virtual timers, supporting nested virtualization scenarios at exception level 2 in secure mode, while QEMU 10.1 added Compute Express Link (CXL) support on the virt board, facilitating high-bandwidth memory and accelerator integration for data-center-like ARM setups. ARM emulation in QEMU is commonly used for testing applications, where it underpins the Emulator to simulate ARM-based devices for app development and pipelines, often with custom for . For iOS app testing, experimental setups emulate environments to run and debug applications, though full simulation remains partial due to proprietary constraints. In embedded scenarios, QEMU runs distributions like on ARM, enabling development, driver testing, and validation on virt or raspi machines without dedicated hardware. Performance varies by acceleration method: TCG provides portable software suitable for cross-architecture testing but incurs overhead from dynamic translation, resulting in slower execution compared to native code. On hosts, KVM integration delivers near-native performance by offloading CPU execution to , minimizing emulation latency for production-like workloads while still using QEMU for device I/O. This combination is particularly effective for guests, achieving efficiencies close to bare-metal in benchmarks.

RISC-V

QEMU provides for both 32-bit (RV32) and 64-bit (RV64) processors through the qemu-system-riscv32 and qemu-system-riscv64 executables, respectively, supporting the base integer instruction set along with standard extensions such as the integer multiplication and division (M), atomic operations (A), single-precision floating-point (F), double-precision floating-point (D), and vector processing (V) extensions. These capabilities enable the of RV32GC and RV64GC CPU configurations, which incorporate the compressed instructions (C) extension for code density optimization. The primary machine model for in QEMU is the generic virt platform, designed for virtualized environments and capable of supporting up to 512 cores, host bridges, virtio-mmio s, and large amounts of RAM without hardware-specific constraints. Additionally, QEMU includes a spike machine as a lightweight proxy to the ISA simulator, facilitating instruction-accurate execution for development and testing of software. Key features encompass the Core-Local or (CLINT) for timer and software interrupts, the Platform-Level Controller (PLIC) for interrupts, and integration with the Binary (SBI) via firmware like OpenSBI, which handles privileged operations such as console I/O and power management. QEMU supports the (H) extension since version 7.0 (2022), enabling two-stage address translation and execution with options like -cpu rv64,h=true, as well as the bit-manipulation subset Zba for efficient address generation and shifts. QEMU's RISC-V emulation supports running open-source operating systems such as distributions (e.g., and on RV64) and on the virt platform, providing a complete system environment for kernel booting and application execution. It is widely used in academic research for debugging multi-core setups via GDB and simulating instruction sets without physical hardware. Specific board emulations include SiFive-based systems like the Unleashed and Microchip PolarFire Icicle Kit, which incorporate SiFive U54 cores for evaluating embedded and designs. Development of QEMU's support has benefited from significant contributions by Linaro, including optimizations for performance and integration of advanced features like vector extensions. is available for hosts equipped with the H extension, allowing hardware-assisted since QEMU 7.0 to improve guest performance over pure . This growing ecosystem positions in QEMU as an alternative for workloads seeking open-source sets beyond proprietary options like .

PowerPC

QEMU emulates the PowerPC architecture, supporting both 32-bit and 64-bit variants through the executables qemu-system-ppc and qemu-system-ppc64, respectively. These variants encompass a range of CPU cores, including the e500 and e550 families designed for embedded applications, as seen in the ppce500 generic platform. Emulation modes include Book3S for standard 64-bit server environments, Book3E for embedded systems with hardware-assisted , and Book3H for hypervisor-specific operations in architectures. The emulator supports several machine types tailored to PowerPC systems, such as the PowerMac family (g3beige and mac99) for emulating classic Macintosh hardware and running OS versions up to 9.x. The machine (40p) provides compatibility with CHRP standards for older IBM-compatible PowerPC setups. Additionally, the pseries machine models and q servers, enabling paravirtualized environments for enterprise workloads. Key features include (also known as VMX) support for vector processing, with ongoing optimizations for instructions like those in Altivec 2.07 to improve performance in emulated environments. In pseries configurations, PAPR hypercalls facilitate guest access to host resources, such as memory mapping and interrupt handling, aligning with the LoPAR specification for virtualization. As of 2025, QEMU version 10.1 includes fixes for L2 cache issues on pseries machines, enhancing reliability for guests operating in Book3S mode. PowerPC emulation in QEMU serves preservation efforts, such as running AIX 7.x on pseries machines to maintain legacy IBM enterprise software. It also supports AmigaOS 4 and similar systems on AmigaNG boards like amigaone and sam460ex, preserving classic computing ecosystems. For the PlayStation 3's Cell processor—a heterogeneous PowerPC-based design—QEMU enables Linux distributions, though full console emulation remains partial. Development activity for PowerPC trails that of ARM and RISC-V, prioritizing stability and bug fixes over expansive new capabilities. Historically, it has aided gaming emulation for PowerPC-era titles on preserved hardware.

Other Architectures

QEMU supports emulation for several additional architectures beyond the primary ones, enabling development and testing in niche environments such as legacy systems, embedded devices, and specialized industrial applications. These architectures primarily rely on QEMU's Tiny Code Generator (TCG) for dynamic binary translation, with limited hardware acceleration options compared to more common platforms. The SPARC architecture is emulated in both 32-bit (sun4m) and 64-bit (sun4u) variants, supporting machine types like SS-5, SS-10, and SPARCstation 5 for running Solaris and OpenSolaris distributions. This emulation facilitates preservation of historical Unix-like systems and compatibility testing for SPARC-specific software. MIPS emulation covers 32-bit and 64-bit processors in both big- and little-endian configurations, with the board serving as a primary machine type for broad compatibility. It supports niche operating systems such as for , allowing developers to target embedded and networking devices without physical hardware. , a 64-bit Chinese-developed , was introduced in QEMU 7.1 and emulates the Loongson 3A5000 SoC via TCG, primarily for domestic software ecosystems and research. IBM's s390x architecture, used in mainframe systems, is supported in 64-bit mode with TCG and KVM acceleration on compatible hosts, emulating the System z machine for enterprise workloads like and distributions. This enables cost-effective testing of high-reliability computing environments. For field-programmable gate arrays (FPGAs), provides 32-bit emulation via a simple system machine type, aiding Xilinx-based prototyping and soft-core CPU development in embedded designs. Similarly, offers 32-bit support on its reference platform, targeting projects and educational simulations. QEMU supports TriCore for automotive applications, emulating 32-bit processors on the TriBoard machine with TCG for Infineon microcontroller testing in vehicle control systems. Xtensa, a configurable architecture from , supports 32-bit emulation on machines like LX60, facilitating audio and development in and devices. These architectures often utilize generic virtual machines for simplified boot processes, emphasizing QEMU's role in FPGA prototyping and niche OS deployment without requiring dedicated hardware.

References

  1. [1]
    About QEMU — QEMU documentation
    QEMU is a generic and open source machine emulator and virtualizer. QEMU can be used in several different ways. The most common is for System Emulation.Supported build platforms · Emulation · Deprecated features · Removed features
  2. [2]
    Fabrice Bellard's Home Page
    QEMU is a generic machine emulator and virtualizer. FFMPEG, the Open Source Multimedia System. I launched this project in year 2000 and led it for several ...JSLinux · TSAC: Very Low Bitrate Audio... · Old projects · QuickJS Javascript Engine<|control11|><|separator|>
  3. [3]
    Emulation — QEMU documentation
    QEMU's Tiny Code Generator (TCG) provides the ability to emulate a number of CPU architectures on any supported host platform.<|control11|><|separator|>
  4. [4]
    Documentation/Platforms - QEMU
    Mar 25, 2022 · Platform, Hardware Virtualization, TCG Guest, MTTCG, TCG Host. Alpha, No, Yes, Yes, No. ARM, KVM, HVF, Yes, Yes, 32 & 64bit.
  5. [5]
  6. [6]
    qemu/qemu: Official QEMU mirror. Please see https://www ... - GitHub
    QEMU is a generic and open source machine & userspace emulator and virtualizer. QEMU is capable of emulating a complete machine in software without any need ...QEMU · Pull requests 0 · Actions · Security
  7. [7]
    QEMU
    A generic and open source machine emulator and virtualizer. Screenshot: QEMU running the ReactOS operating system on Linux.Download QEMU · Documentation · QEMU documentation · QEMU
  8. [8]
    Translator Internals — QEMU documentation
    QEMU is a dynamic translator. When it first encounters a piece of code, it converts it to the host instruction set. Usually dynamic translators are very ...
  9. [9]
    QEMU wiki
    Jul 9, 2020 · QEMU is a generic and open source machine emulator and virtualizer. When used as a machine emulator, QEMU can run OSes and programs made for one machine.Documentation · Links - QEMU · Contribute · Talk:Main Page
  10. [10]
    What can be "virtualized" on top of Qubes?
    Dec 14, 2024 · Qubes runs Xen hypervisor with libvirt (an abstraction layer that can manage various hypervisors, including Xen) and QEMU for device emulation ...Missing: uses | Show results with:uses
  11. [11]
    OpenStack Docs: QEMU
    Aug 23, 2019 · The main difference is that QEMU does not support native virtualization. Consequently, QEMU has worse performance than KVM and is a poor choice ...
  12. [12]
    [PDF] QEMU, a Fast and Portable Dynamic Translator - USENIX
    QEMU is a machine emulator: it can run an unmodified target operating system (such as Windows or Linux) and all its applications in a virtual machine. QEMU ...
  13. [13]
    The History, Use and Technical Details of QEMU | TinyComputers.io
    Jul 22, 2023 · QEMU was initially released in 2003, a creation of French programmer Fabrice Bellard, who is also known for creating other groundbreaking tools ...
  14. [14]
    [Qemu-devel] [ANNOUNCE] QEMU 1.0 release
    Hi, On behalf of the QEMU Team, I'd like to announce the availability of QEMU 1.0! Over 8 years ago, Fabrice Bellard started QEMU as a small ...Missing: 2003 2007
  15. [15]
    ChangeLog/1.0 - QEMU
    Feb 17, 2012 · QEMU now can run on more hosts. Hosts without a native code generator can use the TCG interpreter (TCI). See Features/TCI for more information.Missing: 2003 2007 2011
  16. [16]
    [PDF] Qemu/Xen integration - Linux Plumbers Conf Wiki
    Xen, Qemu and KVM: cross-Community collaboration. - Xen Community: fix mistakes of the past (forks). - bring the Communities closer together: cross-posting ...
  17. [17]
    Xen HVM guest support — QEMU documentation
    KVM has support for hosting Xen guests, intercepting Xen hypercalls and event channel (Xen PV interrupt) delivery. This allows guests which expect to be run ...Missing: 2010s integrations
  18. [18]
    QEMU version 8.0.0 released
    Apr 20, 2023 · RISC-V: wide ranges of fixes covering PMP propagation for TLB, mret exceptions, uncompressed instructions, and other emulation/virtualization ...
  19. [19]
    QEMU version 9.0.0 released
    Apr 23, 2024 · We'd like to announce the availability of the QEMU 9.0.0 release. This release contains 2700+ commits from 220 authors.
  20. [20]
    QEMU version 10.0.0 released
    Apr 23, 2025 · ARM: emulation support for Secure EL2 physical and virtual timers; ARM: emulation support for FEAT_AFP, FEAT_RPRES, and FEAT_XS architecture ...
  21. [21]
    QEMU version 10.1.0 released
    Aug 26, 2025 · x86: KVM support for running confidential guests via Intel TDX; x86: Support for initializing AMD SEV/SEV-ES/SEV-SNP virtual machines using the ...
  22. [22]
    Qemu - GitLab
    Mar 5, 2019 · QEMU main repository: Please see https://www.qemu.org/docs/master/devel/submitting-a-patch.html for how to submit changes to QEMU.Git · QEMU / QEMU · Issues · DocsMissing: contributions Red Hat Linaro AMD annual 2012
  23. [23]
    MAINTAINERS · master - QEMU - GitLab
    The intention of this file is not to establish who owns what portions of the. code base, but to provide a set of names that developers can consult when they.Missing: annual | Show results with:annual
  24. [24]
    QEMU 10.1 Brings New CPU Features, Nested KVM for ARM
    QEMU 10.1, an open-source machine emulator, introduces new CPU features, ARM CXL support, nested KVM on ARM, and drops Debian 11 support.
  25. [25]
    ChangeLog/10.1 - QEMU
    Aug 21, 2025 · KVM · Support for TDX (requires Linux 6.16 or newer). · Support for starting a TDX or SEV-SNP virtual machine from an IGVM file.
  26. [26]
    License — QEMU documentation
    QEMU is a trademark of Fabrice Bellard. QEMU is released under the GNU General Public License, version 2. Parts of QEMU have specific licenses, see file ...
  27. [27]
    LICENSE · master · QEMU / QEMU - GitLab
    Oct 25, 2019 · 1) The QEMU emulator as a whole is released under the GNU General. Public License, version 2. · 2) Parts of the QEMU emulator have specific ...
  28. [28]
  29. [29]
  30. [30]
    License - QEMU
    Nov 24, 2014 · Parts of QEMU have specific licenses which are compatible with the GNU General Public License, version 2. Hence each source file contains its ...
  31. [31]
    Conservancy - QEMU
    Andreas Färber; Alexander Graf; Stefan Hajnoczi; Peter Maydell. The committee votes via simple majority. There cannot be more than one third of the members ( ...Missing: steering | Show results with:steering
  32. [32]
    Submitting a Patch — QEMU documentation
    As a result all contributions to QEMU must be sent as patches to the qemu-devel mailing list. Patch contributions should not be posted on the bug tracker, ...
  33. [33]
    Contribute/MailingLists - QEMU
    Jun 20, 2019 · A new mailing list for their subsystem would make life easier, we're happy to create one -- mail qemu-devel to suggest it.Missing: process GitLab
  34. [34]
    QEMU Summit Minutes 2024
    Oct 31, 2024 · Thu, 31 Oct 2024 13:32:09 +0000. QEMU Summit Minutes 2024 ======================== As usual, we held a QEMU Summit meeting at KVM Forum.
  35. [35]
    AMD Versal Virt (amd-versal-virt, amd-versal2-virt) - QEMU
    The family of Versal SoCs share a single architecture but come in different parts with different speed grades, amounts of PL and other differences. The AMD ...Missing: backers | Show results with:backers
  36. [36]
    QEMU sponsors
    QEMU has ongoing sponsorship agreements with a number of companies and organizations, who provide resources (software, hardware, monetary) to assist in the ...Missing: Versal SoC
  37. [37]
    Contribute - QEMU
    Oct 20, 2025 · Mailing lists: savannah.nongnu.org; IRC: #qemu on irc.oftc.net · Bug tracker: GitLab Issues · Continuous Integration: GitLab CI, Patchew and ...Contribute/MailingLists · Contribute/BiteSizedTasks · Contribute/FAQ
  38. [38]
    Testing/CI - QEMU
    Oct 14, 2024 · Continuous Integration for the project is a distributed affair spread across a number of public CI services as well as some additional tests ...
  39. [39]
    Rust in QEMU
    Rust in QEMU is a project to enable using the Rust programming language to add new functionality to QEMU.Missing: integration | Show results with:integration
  40. [40]
    Rust in QEMU update, July 2025
    Jul 16, 2025 · ... 1.83, Rust devices will need basically no unsafe Rust code. This means that there will be a practical benefit to writing *new* devices in Rust.Rust in QEMU update, April 2025 - GNU mailing listsRe: [PATCH preview 0/5] rust: allow minimum version of 1.83More results from lists.gnu.org
  41. [41]
    QEMU User space emulator
    QEMU relies on the host kernel to emulate most signal system calls, for example to emulate the signal mask. On Linux, QEMU supports both normal and real-time ...
  42. [42]
  43. [43]
  44. [44]
  45. [45]
    Introduction — QEMU documentation
    QEMU's system emulation provides a virtual model of a machine (CPU, memory and emulated devices) to run a guest OS.
  46. [46]
    Anatomy of a Boot, a QEMU perspective
    Jul 3, 2020 · This post will give an overview of how machines boot and how this matters to QEMU. We will discuss firmware and BIOSes and the things they do before the OS ...Missing: emulation | Show results with:emulation
  47. [47]
    Arm System emulator — QEMU documentation
    QEMU can emulate both 32-bit and 64-bit Arm CPUs. Use the qemu-system-aarch64 executable to simulate a 64-bit Arm machine.Arm Versatile boards... · Arm Integrator/CP (integratorcp) · Aspeed family boards...Missing: portability across
  48. [48]
    Documentation/TCG - QEMU
    Nov 5, 2019 · The Tiny Code Generator (TCG) exists to transform target insns (the processor being emulated) via the TCG frontend to TCG ops which are then transformed into ...
  49. [49]
    A deep dive into QEMU: The Tiny Code Generator (TCG), part 1
    This blog post details some internals of the QEMU TCG engine, the machinery responsible for executing target instructions on the host.
  50. [50]
    TCG Intermediate Representation — QEMU documentation
    Code Optimizations​​ A liveness analysis is done at the basic block level. The information is used to suppress moves from a dead variable to another one. It is ...
  51. [51]
    TCG Emulation — QEMU documentation
    TCG Emulation . Details about QEMU's Tiny Code Generator and the infrastructure associated with emulation. You do not need to worry about this if you are ...Execution Record/Replay · QEMU TCG Plugins · Testing QEMU · Codebase
  52. [52]
    qemu-plugin - crates.io: Rust Package Registry
    Sep 7, 2025 · This repository provides tools for building QEMU TCG plugins in Rust! ... Build your plugin: cargo build -r; Make sure you have a qemu built with ...
  53. [53]
    QEMU TCG Plugins
    This is a new feature for QEMU and it does allow people to develop out-of-tree plugins that can be dynamically linked into a running QEMU process.
  54. [54]
    Features/TCG - QEMU
    Jul 10, 2019 · The Tiny Code Generator (TCG) is the core binary translation engine that is responsible for QEMU ability to emulate foreign processors on any ...
  55. [55]
    Accelerating QEMU on Windows with HAXM
    Nov 22, 2017 · Starting with its 2.9.0 release, QEMU is able to take advantage of Intel HAXM to run x86 and x86_64 VMs with hardware acceleration.
  56. [56]
    QEMU User Documentation
    Jun 17, 2006 · For architectures which aim to support live migration compatibility across releases, each release will introduce a new versioned machine type.
  57. [57]
    QEMU 10.1 Released With Intel TDX Improvements, Support For ...
    - QEMU 10.1 on KVM now supports Intel Trust Domain Extensions (TDX) when using the Linux 6.16 kernel or newer. With Linux 6.16 is where intel ...
  58. [58]
    QEMU 10.1 Released with TDX Support, Many RISC-V and ARM ...
    Aug 27, 2025 · This release introduces support for starting a TDX or SEV-SNP virtual machine from an IGVM file. Marcus Nestor by Marcus Nestor August 27, 2025 ...
  59. [59]
    ARM NEON support in Qemu - android emulator - Stack Overflow
    Mar 24, 2013 · Android emulator that comes with the Android SDK has support for NEON instruction set emulation (tested that myself). And it's based on QEMU.Missing: RISC- RVV
  60. [60]
    RISC-V System emulator — QEMU documentation
    QEMU can emulate both 32-bit and 64-bit RISC-V CPUs. Use the qemu-system-riscv64 executable to simulate a 64-bit RISC-V machine.'virt' Generic Virtual Platform · SiFive HiFive Unleashed...
  61. [61]
    Device Emulation — QEMU documentation
    QEMU supports the emulation of a large number of devices from peripherals such network cards and USB devices to integrated systems on a chip (SoCs).
  62. [62]
    USB emulation — QEMU documentation
    XHCI supports USB 1.1, USB 2.0 and USB 3.0 devices, so this is the only controller you need. With only a single USB controller (and therefore only a single USB ...Missing: USB4 | Show results with:USB4<|control11|><|separator|>
  63. [63]
    qemu-list-of-emulated-devices.txt
    ... Storage devices: name "am53c974", bus PCI, desc "AMD Am53c974 PCscsi-PCI SCSI adapter" name "cfi.pflash01", bus System ... bus PCI, desc "Xen PV Device"Missing: peripherals | Show results with:peripherals
  64. [64]
    Compute Express Link (CXL) — QEMU documentation
    The CXL topology may support interleaving across a number of Type 3 memory devices using HDM Decoders in the host, host bridge, switch upstream port and ...Cxl System Components · Cxl Memory Interleave · Example Command LinesMissing: USB4 | Show results with:USB4
  65. [65]
    Re: [PATCH qemu v16 4/5] docs/cxl: Add an arm/virt example.
    Jul 1, 2025 · From: Eric Auger ; Subject: Re: [PATCH qemu v16 4/5] docs/cxl: Add an arm/virt example. ; Date: Tue, 1 Jul 2025 17:42:03 +0200 ; User-agent: ...
  66. [66]
    Disk Images — QEMU documentation
    ### Summary of QEMU Disk Image Formats and qemu-img Tool
  67. [67]
    Qcow2 Image File Format — QEMU documentation
    A qcow2 image file is organized in constant-size clusters, with the first cluster containing the file header. All numbers are stored in Big Endian byte order.Header · Cluster Mapping · Bitmap Directory
  68. [68]
    QEMU disk image utility — QEMU documentation
    ### Summary of Supported Formats and QCOW2 Options in qemu-img
  69. [69]
    QEMU block drivers reference
    NVMe disk images . NVM Express (NVMe) storage controllers can be accessed directly by a userspace driver in QEMU. This bypasses the host kernel file system ...
  70. [70]
    Documentation/QMP - QEMU
    Mar 22, 2022 · The QEMU Machine Protocol (QMP) is a JSON-based protocol which allows applications to control a QEMU instance. Features: Lightweight, text-based ...Beginning · 1QEMU Machine Protocol · 1.1Examples
  71. [71]
    QEMU Machine Protocol Specification
    The QEMU Machine Protocol (QMP) is a JSON-based protocol for applications to operate QEMU at the machine-level, using UTF-8 for input and ASCII for output.
  72. [72]
    Rootless virtual machines with KVM and QEMU - Red Hat Developer
    Dec 18, 2024 · KVM provides only hardware-assisted virtualization, and QEMU provides everything else. It's interesting to note that more of libvirt's ...Missing: backend | Show results with:backend
  73. [73]
    KVM — The Linux Kernel documentation
    No readable text found in the HTML.<|separator|>
  74. [74]
    Invocation — QEMU documentation
    Summary of each segment:
  75. [75]
    QEMU/KVM/HVF hypervisor driver - Libvirt
    The libvirt KVM/QEMU driver can manage any QEMU emulator from version 6.2.0 or later. It supports multiple QEMU accelerators.
  76. [76]
    PCI Passthrough - Proxmox VE
    Sep 3, 2025 · PCI passthrough allows you to use a physical PCI device (graphics card, network card) inside a VM (KVM virtualization only).
  77. [77]
    Migration framework — QEMU documentation
    Live migration allows the guest to continue running while the state is transferred. Only while the last part of the state is transferred has the guest to be ...
  78. [78]
    Chapter 18. Optimizing virtual machine performance | 9
    Virtual machines (VMs) running on a KVM hypervisor do not have dedicated blocks of physical RAM assigned to them. Instead, each VM functions as a Linux process ...
  79. [79]
    How to set up KVM guests to use HugePages? - Red Hat Customer ...
    Feb 5, 2023 · The default method of allocating memory for KVM guests is to use regular 4k pages. This can result in Using HugePages, page table sizes are dramatically ...Missing: overcommitment | Show results with:overcommitment
  80. [80]
    Introduction to virtio-networking and vhost-net - Red Hat
    Sep 9, 2019 · QEMU can be used with KVM to run virtual machines at near native speed leveraging hardware extensions. A guest is executed via the qemu command ...
  81. [81]
    eBPF RSS virtio-net support — QEMU documentation
    eBPF RSS virtio-net support . RSS(Receive Side Scaling) is used to distribute network packets to guest virtqueues by calculating packet hash.Missing: KVM | Show results with:KVM
  82. [82]
    QEMU/KVM Virtual Machines - Proxmox VE
    QEMU is a user program which has access to a number of local resources like partitions, files, network cards which are then passed to an emulated computer.QEMU Guest Agent · Preparing Cloud-Init Templates · Cloud-Init specific Options
  83. [83]
    QEMU: A Tale of Performance analysis | Blog - Linaro
    Jan 14, 2025 · In this post, we will present the performance issues we identified when booting Android using QEMU, and how we solved these upstream.
  84. [84]
    Xen PVH machine (xenpvh) — QEMU documentation
    PVH is a mode that uses HW virtualization features (like HVM) but tries to avoid emulation models and instead use passthrough or paravirtualized devices.
  85. [85]
    Xen Project Software Overview
    Feb 13, 2024 · Unlike HVM guests, PVH guests do not require QEMU to emulate devices, but use PV drivers for I/O and native operating system interfaces for ...
  86. [86]
    Libvirt - ArchWiki
    Aug 20, 2025 · A primary goal of libvirt is to provide a single way to manage multiple different virtualization providers/hypervisors, such as the KVM/QEMU, ...<|separator|>
  87. [87]
    Learn about KVM virtualization with QEMU and Libvirt - NetApp Docs
    Aug 2, 2025 · Libvirt: Acts as the management layer, providing an API and tools to control KVM/QEMU and other hypervisors. In essence: KVM provides the ...Missing: QMP | Show results with:QMP
  88. [88]
  89. [89]
    [PDF] On the Effectiveness of Binary Emulation in Malware Classification
    Apr 8, 2022 · Unicorn adds an easy-to-use API to QEMU, exposing capabilities like reading and writing memory and hooking specific locations, and memory ...
  90. [90]
    Emulating RH850 architecture with Unicorn Engine - Quarkslab's blog
    Apr 30, 2024 · This article details how we managed to add support for this specific architecture into Unicorn Engine, the various challenges we faced and how we successfully ...
  91. [91]
    Qemu/KVM Virtual Machines - Proxmox VE
    Nov 22, 2022 · QEMU is a user program which has access to a number of local resources like partitions, files, network cards which are then passed to an emulated computer.
  92. [92]
    Graphical User Interface - Proxmox VE
    Aug 5, 2025 · Proxmox VE is simple. There is no need to install a separate management tool, and everything can be done through your web browser (Latest Firefox or Google ...
  93. [93]
    Configure hardware acceleration for the Android Emulator
    Aug 8, 2025 · This page describes how you can configure graphics and virtual machine (VM) acceleration to get higher performance from the emulator.Missing: mechanisms | Show results with:mechanisms
  94. [94]
    limboemu/limbo - GitHub
    Limbo is a QEMU-based emulator for Android. It currently supports x86, ARM, PowerPC, and Sparc emulation for Intel x86 and ARM android devices.Releases 12 · Pull requests 22 · Actions · Wiki
  95. [95]
    SerialICE — SerialICE documentation
    SerialICE is a flexible, software based system software debugger. Based on the open source processor emulator Qemu, SerialICE allows you to log and intercept ...
  96. [96]
    WinUAE QEMU PPC - English Amiga Board
    Sep 10, 2014 · PPC JIT is always enabled, QEMU does not seem to have non-JIT mode, emulated instructions are translated to micro-ops that JIT converts to host CPU ...WinUAE and AmigaOS 4.1 FE Guide? - English Amiga BoardWinUAE PPC OS 4.0 Classic Install Guide (Beta 12+)More results from eab.abime.netMissing: integration | Show results with:integration
  97. [97]
    QEMU 9.2 Brings AWS Nitro Enclave Emulation, Many RISC-V ...
    Dec 11, 2024 · QEMU 9.2 open-source virtualization software is now available for download with various improvements and new features.<|separator|>
  98. [98]
    Supported Build Platforms - QEMU
    Platform, Version, Release date, Expected EOL, QEMU support until. Debian, 11 (Bullseye), 2021-08-14, ~2024, Up to 2 years after Debian 12 release.
  99. [99]
    x86 System emulator — QEMU documentation
    OS requirements . On x86_64 hosts, the default set of CPU features enabled by the KVM accelerator require the host to be running Linux v4.5 or newer.Xen HVM guest support · I440fx PC (pc-i440fx, pc) · Recommendations for KVM...
  100. [100]
    i440fx PC (pc-i440fx, pc) — QEMU documentation
    The QEMU PC System emulator simulates the following peripherals: i440FX host PCI bridge and PIIX3 PCI to ISA bridge. Cirrus CLGD 5446 PCI VGA card or dummy VGA ...
  101. [101]
    Features/Q35 - QEMU
    Sep 12, 2017 · Add emulation of the ICH9 host chipset as an alternative to the current I440FX emulation. This will allow for better support of PCI-E passthrough.
  102. [102]
    QEMU machine types and compatibility - Red Hat People
    Jan 5, 2022 · The pc-i440fx machine type supports versions since 1.4 (there used to be even older ones, but they have been removed), while the pc-q35 machine ...
  103. [103]
    QEMU version 7.2.0 released
    Dec 14, 2022 · QEMU 7.2.0 includes ARM CPU feature support, LoongArch DMA, OpenRISC multi-threaded TCG, RISC-V S-mode firmware, and x86 TCG support for AVX, ...
  104. [104]
    Recommendations for KVM CPU model configuration on x86 hosts
    The information that follows provides recommendations for configuring CPU models on x86 hosts. The goals are to maximise performance, while protecting guest OS.
  105. [105]
  106. [106]
    COMP 630: Lab 1: x86 Assembly and Bootloader
    May 13, 2025 · The purpose of the first exercise is to introduce you to x86 assembly language and the PC bootstrap process, and to get you started with QEMU ...Part 1: Pc Bootstrap · Simulating The X86 · Part 3: The Kernel
  107. [107]
    Intel Trusted Domain eXtension (TDX) — QEMU documentation
    To run TD, the physical machine needs to have TDX module loaded and initialized while KVM hypervisor has TDX support and has TDX enabled. ... © Copyright 2025, ...
  108. [108]
    A-profile CPU architecture support — QEMU documentation
    QEMU's TCG emulation includes support for the Armv5, Armv6, Armv7, Armv8 and Armv9 versions of the A-profile architecture.
  109. [109]
    'virt' generic virtual platform (virt) — QEMU documentation
    Set on / off to enable/disable emulating a guest CPU which implements the Arm Security Extensions (TrustZone). ... QEMU supports two types of guest image ...
  110. [110]
    QEMU version 6.1.0 released
    Aug 24, 2021 · ARM: emulation support for SVE2 (including bfloat16), integer matrix multiply accumulate operations, TLB invalidate in Outer Shareable domain, ...
  111. [111]
    Emulating an iPhone in QEMU - Part I - eShard
    Apr 3, 2025 · We set our long term objective on getting a functional iOS emulated, with UI and at least the ability to execute some apps.
  112. [112]
    QEMU - Ubuntu Server documentation
    For a long time, QEMU only supported launching virtual machines with 288 vCPUs or fewer. While this was acceptable a decade ago, nowadays it is more common to ...
  113. [113]
    Emulating Embedded Linux Systems with QEMU | Orient Display
    Nov 15, 2021 · Only the kernel debugging can be simulated using QEMU without purchasing hardware. It's available for Linux and Windows hosts and emulated PowerPC, ARM, MIPS, ...
  114. [114]
    Near-native performance KVM virtualized guest vs Qemu's TCG
    On one side KVM-on-ARM is used to run a fully virtualized guest, while on the other side the guest is emulated with QEMU's TCG. Near-native performance is ...
  115. [115]
    'virt' Generic Virtual Platform (virt) — QEMU documentation
    Refer to RISC-V IOMMU support for RISC-V machines for more information on how the RISC-V IOMMU support works. Machine-specific options . The following ...
  116. [116]
    QEMU RISC-V — Das U-Boot unknown version documentation
    QEMU for RISC-V supports a special 'virt' machine and 'spike' machine designed for emulation and virtualization purposes. This document describes how to run U- ...
  117. [117]
    ChangeLog/7.0 - QEMU
    Apr 11, 2022 · RISC-V KVM support; Mark Hypervisor extension as non experimental ... SiFive PDMA 64-bit support; Support 32 cores on the virt machine ...
  118. [118]
    QEMU version 6.2.0 released
    Dec 14, 2021 · RISC-V: support for vhost-user and numa mem options across all boards; RISC-V: SiFive PWM support; x86: support for new Snowridge-v4 CPU model ...
  119. [119]
    Documentation/Platforms/RISCV - QEMU
    Jan 21, 2022 · RISC-V is an open source instruction set. It is a modular with only a small set of mandatory instructions. Every other module might be implemented by vendors.Beginning · 3Booting Linux · 4Microchip PolarFire SoC...
  120. [120]
    riscv/QEMU - FreeBSD Wiki
    Sep 16, 2025 · QEMU provides good support for system-level RISC-V emulation. A full FreeBSD system can be run using its virt platform.
  121. [121]
    Linaro/qemu: This is a fork from Official QEMU source ... - GitHub
    This is a fork from Official QEMU source repository. What's added is the support of vSVA: sharing guest application address space with passthrough devices.
  122. [122]
    Accelerate KVM RISC-V when running as a guest - LWN.net
    Jul 19, 2024 · In this case, the KVM RISC-V performance can be accelerated using the SBI nested acceleration (NACL) extension if the host hypervisor provides ...
  123. [123]
    PowerPC System emulator — QEMU documentation
    This documentation is for QEMU version 10.1.50. QEMU and this manual are released under the GNU General Public License, version 2.pSeries family boards (pseries) · Ppce500 generic platform... · Prep machine (40p)
  124. [124]
    ppc-pv.rst - The Linux Kernel Archives
    The basic execution principle by which KVM on PowerPC works is to run all kernel space code in PR=1 which is user space. This way we trap all privileged ...
  125. [125]
    PowerMac family boards (g3beige, mac99) — QEMU documentation
    QEMU PowerMac family boards ( g3beige , mac99 ) Use the executable qemu-system-ppc to simulate a complete PowerMac PowerPC system.
  126. [126]
    pSeries family boards (pseries) — QEMU documentation
    The Power machine para-virtualized environment described by the Linux on Power Architecture Reference ([LoPAR]) document is called pSeries.
  127. [127]
    Re: [Qemu-devel] [PATCH 00/28] target-ppc: Altivec 2.07
    Feb 20, 2014 · Tom, I tested your patches [see below] and I found they work very well. They solve all the immediate problems that libguestfs was hitting ...[Qemu-ppc] [PATCH 04/28] target-ppc: Altivec 2.07 - GNU mailing lists[PATCH] target/ppc: Fix e6500 boot - GNU mailing listsMore results from lists.gnu.org
  128. [128]
    sPAPR hypervisor calls — QEMU documentation
    PAPR and LoPAR provides a set of hypervisor calls to perform cacheable or non-cacheable accesses to any guest physical addresses that the guest can use.
  129. [129]
    Tutorial - emulate AIX 7.2 in QEMU - Worth Doing Badly
    Sep 6, 2018 · To emulate AIX 7.2 in QEMU, download the AIX diagnostics disk, install QEMU, and use the provided command line to launch it.
  130. [130]
    AmigaNG boards (amigaone, pegasos1, pegasos2, sam460ex)
    These PowerPC machines emulate boards that are primarily used for running Amiga like OSes (AmigaOS 4, MorphOS and AROS) but these can also run Linux.
  131. [131]
    Deprecated features — QEMU documentation
    In general features are intended to be supported indefinitely once introduced into QEMU. In the event that a feature needs to be removed, it will be listed in ...Missing: WebSocket | Show results with:WebSocket
  132. [132]
  133. [133]
  134. [134]
    ChangeLog/7.1 - QEMU
    Aug 20, 2022 · LoongArch. Add initial support for the LoongArch64 architecture, the Loongson 3A5000 multiprocessor SoC, and the Loongson 7A1000 host bridge.
  135. [135]
    ChangeLog/10.0 - QEMU
    Jul 21, 2025 · The CPU now emulates the Secure EL2 physical and virtual timers; New CPU architectural features emulated: FEAT_AFP; FEAT_RPRES; FEAT_XS. The ...Missing: April | Show results with:April
  136. [136]
    System Emulation — QEMU documentation
    System Emulation . This section of the manual is the overall guide for users using QEMU for full system emulation (as opposed to user-mode emulation).CanoKey QEMU · Arm System emulator · QEMU Barrier Client · Multi-process QEMUMissing: portability across