Sergey Nivens - Fotolia
QEMU is an open source emulator and virtualization tool that specializes in emulating different CPU architectures. QEMU 5.0 introduced new and updated features, such as support for non-volatile dual in-line memory module hardware and shared file systems.
QEMU is one of the few options available for running software targeted at different CPU architectures. This is because QEMU enables developers to run applications compiled for one architecture on another architecture. Many Linux distributions ship with QEMU preinstalled.
When admins closely examine the architecture of most common virtualization products, they might notice some combination of hardware and software running in tandem. QEMU can emulate a complete machine in software without requiring any hardware virtualization support. Although this is a much less performant method of virtualization, it removes any potential conflicts with the underlying hardware, as QEMU 5.0 supports x86, PowerPC, ARM and SPARC architectures.
An introduction to QEMU
QEMU started out as a novel way to run alternative OSes from within a Linux environment and evolved into a full-featured virtualization tool. QEMU 5.0 runs on Linux, macOS and Windows. On Linux, admins can either run full-system emulation mode or user-mode emulation. It's also possible to run either KVM or Xen VMs, with performance approaching that of the native hardware.
Both KVM and Xen function as hypervisors, meaning they serve as a layer between the hardware and the virtual images running in their own memory space. KVM -- a Type 2 hypervisor -- runs on top of the underlying Linux OS, whereas Xen -- a Type 1 hypervisor -- runs directly on the hardware without an underlying OS.
QEMU is an application that runs just like any other application on the host OS. QEMU functions as a Type 2 hypervisor because it runs on top of a host OS. Because of this, admins might notice that QEMU and KVM are similar; KVM can perform hardware acceleration. The big difference is that QEMU can emulate different CPU architectures in software.
Kata Containers is an example of QEMU in action. Kata Containers aims to take the best of containers and VMs and merge them together. Security stands out as a primary focus of Kata Containers, demonstrated by providing stronger workload isolation using hardware virtualization technology as a second layer of defense.
QEMU 5.0 release offers improved features, new capabilities
In April 2020, QEMU 5.0 was officially released and version 5.1 came out four months later in August. QEMU 5.0 introduced new features, including support for additional CPU architectures and hardware, such as non-volatile dual in-line memory module. One significant new feature included in QEMU 5.0 is support for a shared file system using Virtio-fs. This feature makes the sharing of local files much more performant than in previous releases.
QEMU 5.1 also introduced updated support for secure guests. This feature takes advantage of the Trusted Platform Module to enable secure VM mode. In addition, QEMU 5.1 introduced memory encryption to address security concerns.
Admins can manage QEMU instances in several different ways. The QEMU Monitor provides a command-line interface supporting a large list of commands. This approach lends itself well to automation using PowerShell or Python scripts.
In addition, Gnome Boxes is a utility for managing VMs based on QEMU and KVM. It provides a user-friendly GUI for rapid creation of new VMs. Virt-manager is another GUI tool for managing VMs based on libvirt. The libvirt project delivers a toolkit to manage a variety of virtualization products, which admins can access from a variety of programing languages.