The release of QEMU 6.1 has been announced. As an emulator, QEMU allows you to run programs compiled for one hardware platform on a system with a completely different architecture, for example, running an ARM application on an x86-compatible PC. In virtualization mode, the performance of code execution in the isolated environment is close to that of a physical system due to direct execution of instructions on the CPU and involvement of the Xen hypervisor or KVM module.
The project was originally created by Fabrice Bellard to enable the execution of Linux executables compiled for the x86 platform on architectures different from x86. Over the years of development, support for full emulation has been added for 14 hardware architectures, and the number of emulated hardware devices has exceeded 400. The preparation of version 6.1 included more than 3000 changes from 221 developers.
Key improvements added in QEMU 6.1 include:
- The QMP (QEMU Machine Protocol) now includes the ‘blockdev-reopen’ command for modifying settings of an already created block device.
- GnuTLS has been implemented as the preferred cryptodriver, outperforming other drivers. The previously default driver based on libgcrypt has been moved to optional status, and the nettle-based driver remains as a fallback option used when GnuTLS and Libgcrypt are unavailable.
- Support for PMBus and I2C multiplexers (pca9546, pca9548) has been added to the I2C emulator.
- By default, plugin support has been enabled for the classic TCG (Tiny Code Generator). New plugins execlog (execution log) and cache modelling (simulation of L1 cache behavior in the CPU) have been added.
- The ARM emulator now supports boards based on Aspeed chips (rainier-bmc, quanta-q7l1), npcm7xx (quanta-gbs-bmc), and Cortex-M3 (stm32vldiscovery). Support for hardware encryption and hashing engines provided in Aspeed chips has been added. Emulation of SVE2 instructions (including bfloat16), matrix multiplication operators, and commands for flushing translation lookaside buffers (TLB) has also been introduced.
- The PowerPC architecture emulator for "pseries" has added support for detecting failures during hotplugging of devices in new guest environments, increased the limit on the number of CPUs, and implemented emulation of certain instructions specific to POWER10 processors. Support for boards based on Genesi/bPlan Pegasos II chips (pegasos2) has been added.
- The RISC-V emulator has added support for the OpenTitan platform and the virtio-vga virtual GPU (based on virgl).
- The s390 emulator has added support for 16th generation CPUs and vector extensions.
- The x86 emulator has added support for new Intel CPU models (Skylake-Client-v4, Skylake-Server-v5, Cascadelake-Server-v5, Cooperlake-v2, Icelake-Client-v3, Icelake-Server-v5, Denverton-v3, Snowridge-v3, Dhyana-v2), which implement the XSAVES instruction. The Q35 chipset emulator (ICH9) now supports hotplugging of PCI devices. Emulation of virtualization extensions provided in AMD processors has been improved. An option bus-lock-ratelimit has been added to limit the intensity of bus locking by the guest system.
- Support has been added for using NVMM as an accelerator for the hypervisor, developed by the NetBSD project.
- In the GUI, password authentication when using the VNC protocol is now only enabled when built with an external cryptographic backend (gnutls, libgcrypt, or nettle).
Source: opennet.ru
