The release of QEMU 9.2 has been announced. As an emulator, QEMU allows running software 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 an isolated environment is close to that of the hardware system thanks to direct execution of instructions on the CPU and the use of the Xen hypervisor or the KVM module in Linux, or the NVMM module in NetBSD.
The project was initially created by Fabrice Bellard with the aim of enabling the execution of Linux executables compiled for the x86 platform on architectures other than x86. Over the years of development, support has been added for full emulation of 14 hardware architectures, and the number of emulated hardware devices has exceeded 400. For version 9.2, more than 1,700 changes from 209 developers have been made.
Key improvements added in QEMU 9.2:
- Experimental support for creating device models written in Rust has been introduced. When building QEMU with Rust support, an alternative implementation of the PL011 UART driver, written in Rust, is enabled by default but is not yet recommended for widespread use.
Currently, Rust support in QEMU is disabled by default and can be activated during the build by specifying the option ‘—enable-rust’ when running the configure script. To build with Rust, at least rustc version 1.63.0 and bindgen version 0.60.0 are required (for example, in Debian 12, a newer version of Rust has to be installed separately). In the future, the Rust compiler and the bindgen binding generator are planned to be added to the list of mandatory build dependencies.
Plans related to promoting Rust in QEMU include bringing the HPET (High Precision Event Timer) driver and block device driver written in Rust to working order, continuing the development of bindings for using Rust in various QEMU components (for example, in block device drivers, timers, and GPIO), and rewriting security-critical systems in Rust, such as virtio.
- The VirtIO-GPU device, which provides a virtual GPU, has added support for 3D acceleration using the Vulkan graphics API, implemented through the Mesa Vulkan driver Venus. This allows the guest system to receive a virtual GPU for 3D rendering without granting exclusive direct access to the physical GPU. The setup requires the virglrenderer library on the host system and the Venus Mesa driver on the guest system. Instructions for configuring Vulkan support in QEMU are available.
- The guest migration toolkit has added support for accelerating compression of concurrently streamed data using the QATzip library, which utilizes the Intel QuickAssist Technology (QAT) hardware accelerator to enhance compression and encryption-related computations.
- Support for the SHA-384 hashing algorithm has been added to the GLib-based cryptographic backend.
- The ARM architecture emulator has added support for the processor extensions FEAT_EBF16 and FEAT_CMOW, as well as security extensions used in xilinx-zynq-a9 boards. When using the HVF component, which employs the Hypervisor.framework toolkit to accelerate guest systems on ARM Mac computers, support for more than 64 GB of memory has been ensured. The emulated systems sbsa-ref and virt have added support for bi-directional address translation in the SMMU (System Memory Management Unit). Support for deprecated emulated hardware types akita, borzoi, cheetah, connex, mainstone, n800, n810, spitz, terrier, tosa, verdex, and z2 has been discontinued.
- The x86 architecture emulator has added support for a new type of hardware configuration — nitro-enclave, which emulates the AWS Nitro Enclave environment and is capable of loading system images in Enclave Image Format.
- The x86 architecture emulator for the hypervisor has enabled support for the AVX10 instruction set, including specific versions AVX10 — avx10-128, avx10-256, and avx10-512. KVM The RISC-V architecture emulator has added support for instruction set extensions Svvptc, Bitmanip (Bit-Manipulation), and CFI (Control Flow Integrity) used on OpenTitan boards. The emulated system type 'virt' has included support for IOMMU. Performance for ld and st instructions has been improved.
- In the HPPA architecture emulator, the SeaBIOS-hppa firmware has been updated to version 17.
- In the HPPA architecture emulator, the SeaBIOS-hppa firmware has been upgraded to version 17.
- The s390x architecture emulator now supports booting from other devices if the specified device fails to boot.
Source: opennet.ru
