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
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.