The release of the QEMU 6.1 project is presented . As an emulator, QEMU allows you to run a program compiled for one hardware platform on a system with a completely different architecture, for example, to run an application for ARM on an x86-compatible PC. In virtualization mode in QEMU, the performance of executing code in an isolated environment is close to the hardware system due to the direct execution of instructions on the CPU and the use of the Xen hypervisor or the KVM module.
The project was originally created by Fabrice Bellard to enable x86-built Linux binaries to run on non-x86 architectures. Over the years of development, support for full emulation has been added for 14 hardware architectures, the number of emulated hardware devices has exceeded 400. In the preparation of version 6.1, more than 3000 changes were made from 221 developers.
Key improvements added in QEMU 6.1:
- Added “blockdev-reopen” command to QMP (QEMU Machine Protocol) to change the settings of an already created block device.
- As a priority crypto driver, gnutls is used, which is ahead of other drivers in terms of performance. The previously offered default libgcrypt-based driver has been moved to an option, and the nettle-based driver has been left as a fallback for use in the absence of GnuTLS and Libgcrypt.
- Added support for PMBus and I2C multiplexers (pca9546, pca9548) to the I2C emulator.
- By default, support for plugins for the classic TCG (Tiny Code Generator) code generator is enabled. Added new plugins execlog (execution log) and cache modeling (simulation of L1 cache behavior on the CPU).
- Added support for boards based on Aspeed (rainier-bmc, quanta-q7l1), npcm7xx (quanta-gbs-bmc) and Cortex-M3 (stm32vldiscovery) chips in the ARM emulator. Added support for hardware encryption and hashing engines provided in Aspeed chips. Added support for emulating SVE2 instructions (including bfloat16), operators for matrix multiplication, and TLB flush commands.
- The “pseries” PowerPC architecture emulator for emulated machines has added support for detecting hot-plug failures in new guest environments, increased the CPU limit, and implemented emulation of some instructions specific to POWER10 processors. Added support for boards based on Genesi / bPlan Pegasos II (pegasos2) chips.
- The RISC-V emulator supports the OpenTitan platform and the virtio-vga virtual GPU (based on virgl ).
- The s390 emulator adds support for 16th generation CPUs and vector extensions.
- Added support for new Intel CPU models in x86 emulator (Skylake-Client-v4, Skylake-Server-v5, Cascadelake-Server-v5, Cooperlake-v2, Icelake-Client-v3, Icelake-Server-v5, Denverton-v3, Snowridge- v3, Dhyana-v2) that implement the XSAVES instruction. The Q35 (ICH9) chipset emulator supports hot plugging of PCI devices. Improved emulation of virtualization extensions provided in AMD processors. Added bus-lock-ratelimit option to limit the intensity of bus locking by the guest system.
- Added support for use as an accelerator for the NVMM hypervisor developed by the NetBSD project.
- In the GUI, password authentication support when using the VNC protocol is now only enabled when building with an external cryptographic backend (gnutls, libgcrypt, or nettle).