QEMU is an open-source vir­tu­al­iza­tion software that enables the emulation and vir­tu­al­iza­tion of various operating systems and ap­pli­ca­tions across different hardware platforms.

What is QEMU?

QEMU, short for “Quick Emulator”, is a vir­tu­al­iza­tion software that can be used to emulate various types of hardware. As open source software, QEMU is freely ac­ces­si­ble and supported by a large community of de­vel­op­ers worldwide. It enables the emulation of various hardware ar­chi­tec­tures, including x86, ARM, PowerPC, and many others. This ver­sa­til­i­ty makes QEMU par­tic­u­lar­ly valuable for pro­gram­mers, testers, and system ad­min­is­tra­tors who need to test and run different operating systems or software on diverse hardware con­fig­u­ra­tions.

Re­quire­ments for the use of QEMU

In order to use QEMU ef­fec­tive­ly, some basic re­quire­ments must be met:

  • Hardware: QEMU can run on almost any modern computer hardware, but per­for­mance is highly dependent on available resources. For the emulation of complex operating systems and ap­pli­ca­tions, a powerful processor and suf­fi­cient RAM are crucial. For example, emulating x86 operating systems usually requires at least 4 GB RAM to run smoothly, while more complex scenarios such as emulating an ARM server might require more resources.
  • Operating system: QEMU is cross-platform and runs on various operating systems such as Linux, Windows and macOS. However, in­stal­la­tion and use may vary depending on the operating system. For optimal and straight­for­ward use on Linux systems, it’s rec­om­mend­ed to choose a Linux dis­tri­b­u­tion already con­tain­ing QEMU in its package sources.
  • Software: Depending on the operating system and specific use cases, ad­di­tion­al software packages or libraries may need to be installed. On Linux systems this can be e.g. libvirt for the ad­min­is­tra­tion of virtual machines or virt-manager for a graphical user interface.
Note

For improved per­for­mance on Linux systems, QEMU can be combined with KVM, a kernel module that manages the al­lo­ca­tion of resources from the host system.

How does QEMU work?

QEMU functions as both an emulator and a vir­tu­al­iz­er. As an emulator, it enables the execution of software designed for one hardware platform on an entirely different one by repli­cat­ing the hardware at the software level. For instance, QEMU can emulate an ARM processor on an x86 computer, allowing operating systems and programs developed for ARM to run seam­less­ly on x86 hardware.

As a vir­tu­al­iz­er, QEMU uses the existing hardware to create a vir­tu­al­iza­tion layer. When QEMU is used together with KVM as a hy­per­vi­sor, it can access the CPU ex­ten­sions to run virtual machines almost natively, resulting in greatly improved per­for­mance. This method is called par­avir­tu­al­iza­tion and helps to maximize the per­for­mance of the virtual machines by allowing them to access the physical hardware directly.

Important areas of ap­pli­ca­tion for QEMU

QEMU is used in a variety of different areas:

  • Software de­vel­op­ment and testing: QEMU allows testing software on different hardware ar­chi­tec­tures without requiring physical machines, making it ideal for cross-platform de­vel­op­ment and sup­port­ing multiple ar­chi­tec­tures.
  • Vir­tu­al­iza­tion of servers and desktops: QEMU is commonly used in server en­vi­ron­ments to host virtual machines running various services.
  • Research and education: QEMU allows students and re­searchers to ex­per­i­ment with different operating systems and hardware con­fig­u­ra­tions without the need for expensive physical hardware.
  • Emulation of legacy systems: QEMU can emulate older or un­sup­port­ed operating systems and software, aiding in the main­te­nance and operation of legacy systems.

Ad­van­tages of QEMU

  • Flex­i­bil­i­ty and ver­sa­til­i­ty: QEMU supports a wide range of hardware ar­chi­tec­tures and can be used for both vir­tu­al­iza­tion and emulation, making it a highly versatile tool for various ap­pli­ca­tions.
  • Free and open source: As open-source software, QEMU is free to use and has no license costs. It also benefits from an active community that con­tin­u­ous­ly provides im­prove­ments and security updates.
  • Cross-platform support: QEMU runs on multiple operating systems, offering high com­pat­i­bil­i­ty and flex­i­bil­i­ty for users across different platforms.
  • Com­bin­abil­i­ty with KVM: When combined with KVM, QEMU can provide near-native per­for­mance, making it an at­trac­tive choice for vir­tu­al­iz­ing servers and desktops.

Dis­ad­van­tages of QEMU

  • Per­for­mance in full emulation: In emulation mode, QEMU can be slower than other solutions due to the need to emulate hardware entirely in software, resulting in higher overhead and slower execution.
  • Com­plex­i­ty: Setting up and con­fig­ur­ing QEMU can be chal­leng­ing for beginners, es­pe­cial­ly when ad­di­tion­al com­po­nents like KVM, libvirt or network bridges need to be added.
  • Lack of ease of use: In com­par­i­son to other vir­tu­al­iza­tion solutions, QEMU doesn’t provide a native, user-friendly graphical interface.
  • Limited support for 3D ac­cel­er­a­tion: While QEMU is capable of emulating basic graphics op­er­a­tions, its support for 3D ac­cel­er­a­tion is limited, making it less ideal for graphics-intensive ap­pli­ca­tions.
Go to Main Menu