# What is QEMU? An overview of the emulation software

QEMU is an open-source virtualisation software that enables the **emulation and virtualisation of various operating systems and applications** across different hardware platforms.

## What is QEMU?

QEMU, short for *‘Quick Emulator’*, is a virtualisation software that can be used to emulate **various types of hardware**. As [open source software](https://www.ionos.co.uk/digitalguide/server/know-how/what-is-open-source/), QEMU is freely accessible and supported by a large community of developers worldwide. It enables the emulation of various hardware architectures, **including x86, ARM, PowerPC, and many others**. This versatility makes QEMU particularly valuable for programmers, testers, and system administrators who need to test and run different operating systems or software on diverse hardware configurations.

## Requirements for the use of QEMU

In order to use QEMU effectively, some basic requirements must be met:

- **Hardware**: QEMU can run on almost any modern computer hardware, but performance is highly dependent on available resources. For the emulation of complex operating systems and applications, a powerful processor and sufficient RAM are crucial. For example, emulating x86 operating systems usually requires at least 4 GB [RAM](https://www.ionos.co.uk/digitalguide/server/know-how/what-is-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](https://www.ionos.co.uk/digitalguide/server/know-how/what-is-an-operating-system/) such as Linux, Windows and macOS. However, installation and use may vary depending on the operating system. For **optimal and straightforward use on Linux systems**, it’s recommended to choose a [Linux distribution](https://www.ionos.co.uk/digitalguide/server/configuration/linux-distributions/) already containing QEMU in its package sources.
- **Software**: Depending on the operating system and specific use cases, **additional software packages or libraries** may need to be installed. On Linux systems this can be e.g. `libvirt` for the administration of virtual machines or `virt-manager` for a graphical user interface.

Note For improved performance on Linux systems, QEMU can be combined with [KVM](https://www.ionos.co.uk/digitalguide/server/know-how/what-is-kvm/), a kernel module that manages the allocation of resources from the host system.

## How does QEMU work?

QEMU functions as both an emulator and a virtualiser. As an emulator, it enables the execution of software designed for one hardware platform on an entirely different one by **replicating 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 seamlessly on x86 hardware.

As a virtualiser, QEMU uses the existing hardware to create a virtualisation layer. When **QEMU is used together with KVM as a [hypervisor](https://www.ionos.co.uk/digitalguide/server/know-how/what-is-a-hypervisor/)**, it can access the CPU extensions to run [virtual machines](https://www.ionos.co.uk/digitalguide/server/know-how/virtual-machines/) almost natively, resulting in greatly improved performance. This method is called **paravirtualisation** and helps to maximise the performance of the virtual machines by allowing them to access the physical hardware directly.

## Important areas of application for QEMU

QEMU is used in a variety of different areas:

- **Software development and testing**: QEMU allows testing software on different hardware architectures without requiring physical machines, making it ideal for cross-platform development and supporting multiple architectures.
- **[Virtualisation](https://www.ionos.co.uk/digitalguide/server/configuration/virtualisation/) of servers and desktops**: QEMU is commonly used in server environments to host virtual machines running various services.
- **Research and education**: QEMU allows students and researchers to experiment with different operating systems and hardware configurations without the need for expensive physical hardware.
- **Emulation of legacy systems**: QEMU can emulate older or unsupported operating systems and software, aiding in the maintenance and operation of legacy systems.

## Advantages of QEMU

- **Flexibility and versatility**: QEMU supports a **wide range of hardware architectures** and can be used for both virtualisation and emulation, making it a highly versatile tool for various applications.
- **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 continuously provides improvements and security updates.
- **Cross-platform support**: QEMU runs on multiple operating systems, offering high compatibility and flexibility for users across different platforms.
- **Combinability with KVM**: When combined with KVM, QEMU can provide near-native performance, making it an attractive choice for virtualising servers and desktops.

## Disadvantages of QEMU

- **Performance 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.
- **Complexity**: Setting up and configuring QEMU can be challenging for beginners, especially when additional components like KVM, `libvirt` or network bridges need to be added.
- **Lack of ease of use**: In [comparison to other virtualisation solutions](https://www.ionos.co.uk/digitalguide/server/configuration/best-virtualisation-software/), QEMU doesn’t provide a native, user-friendly graphical interface.
- **Limited support for 3D acceleration**: While QEMU is capable of emulating basic graphics operations, its support for 3D acceleration is limited, making it less ideal for graphics-intensive applications.


This is a markdown version of: [https://www.ionos.co.uk/digitalguide/server/configuration/qemu/](https://www.ionos.co.uk/digitalguide/server/configuration/qemu/) for AI/LLM consumption.