LinuxNewsOpen Source Software

Open Source VM Hypervisor QEMU 6.0 adds new features

When hearing or reading the word "VM" or "Virtual Machine" many people think immediately of VMware. However in the open source world, there's QEMU (short for Quick EMUlator) – and QEMU has been around for a while (since December 2011).

Confused about terminology?

KVM: The Linux Kernel module which makes virtualization possible

QEMU: The open source hypervisor to create and manage virtual machines

VIRSH: A management tool/layer to manage QEMU virtual machines.

Now almost 10 years after the first release, QEMU announced today the newest version: 6.0.

What's new in QEMU 6.0 ?

There are many changes, QEMU 6.0 is a big release. However here are some new features which are clearly standing out.

ARM and RISC-V architecture

A lot of work went into supporting additional ARM and RISC-V architectures. Additional processors and boards are supported.

  • ARM: support for ARMv8.1-M ‘Helium’ architecture and Cortex-M55 CPU
  • ARM: support for ARMv8.4 TTST, SEL2, and DIT extensions
  • ARM: ARMv8.5 MemTag extension now available for both system and usermode emulation
  • ARM: support for new mps3-an524, mps3-an547 board models
  • ARM: additional device emulation support for xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx, and sabrelite board models

Snapshots of running VMs

Users from VMware are used to create snapshots of a running VM, including saving the current memory state, to revert the VM to a certain running state (including all processes running at the time of the snapshot). In QEMU 6.0 this is now also possible, however marked as "experimental" first.

New feature (experimental): Background RAM snapshot from Andrey Gruzdev; using the Linux UFFD-WP feature, enabling fixed size snapshots even with busy guests

Multi-process QEMU

Another exciting new feature is Multi-process QEMU (mpqemu). This allows to run emulated devices in a separate process. This can help to improve security as each process can have its own security policy (SELinux for example). However multi-process is currently also marked as experimental and is subject to change. Also right now, only one physical device can be emulated: The storage controller lsi53c895.

To use multi-process, the parameters -machine x-remote and -device -x-pci-proxy-dev have been added to the command line.

Claudio Kuenzler
Claudio has been writing way over 1000 articles on his own blog since 2008 already. He is fascinated by technology, especially Open Source Software. As a Senior Systems Engineer he has seen and solved a lot of problems - and writes about them.

Leave a reply

Your email address will not be published.

More in:Linux