Open source machine emulator and virtualizer

The QEMU Project includes the QEMU open source machine emulator and virtualizer and also acts as an umbrella organization for the KVM Linux kernel module and Jailhouse partitioning hypervisor.

When used as a machine emulator, QEMU can run operating systems and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, it achieves very good performance.

When used as a virtualizer, QEMU achieves near native performances by executing the guest code directly on the host CPU. QEMU supports virtualization when executing under the Xen hypervisor or using the KVM kernel module in Linux. When using KVM, QEMU can virtualize x86, ARM, server and embedded PowerPC, and S390 guests.

lightbulb_outline View ideas list


  • linux
  • kvm
  • c
  • virtualization


  • Cloud
  • emulator
  • hypervisor
  • lowlevel
  • code generation
comment IRC Channel
email Mailing list
mail_outline Contact email

QEMU 2019 Projects

  • Alexander Oleinik
    Fuzzing QEMU's implementation of VirtIO devices
    Integrate QEMU with the OSS-Fuzz continuous fuzzing service. Implement functionality to fuzz QEMU’s devices adhering to the VirtIO standard. Fuzzing...
  • Vanderson M. do Rosario
    Improving Measurement of Tiny Code Generation Quality
    One of the most important steps in tuning an emulator performance is to identify which are the hot regions and to measure their translation quality....
  • Jan Bobek
    Support for AVX within TCG
    QEMU's TCG just-in-time compiler translates target CPU instructions into host CPU instructions so that programs written for other CPU architectures...