Release of QEMU emulator 9.0.0

The release of the QEMU 9.0 project has been presented. As an emulator, QEMU allows a program compiled for one hardware platform to run 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 a hardware system due 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 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 of 14 hardware architectures has been added, and the number of emulated hardware devices has exceeded 400. For version 9.0, more than 2700 changes from 220 developers have been made.

Key improvements added in QEMU 9.0:

  • In the virtio-blk driver, which provides a virtual block device for of virtual machines, support for a multiqueue system has been added, allowing the split of queues for different block devices to ensure multithreaded access on multicore systems (different queues of the same disk can be processed by different I/O threads).
  • In the usb-storage block device, support for properties ‘backend_defaults’, ‘logical_block_size’, ‘physical_block_size’, ‘min_io_size’, ‘opt_io_size’, and ‘discard_granularity’ has been added.
  • In the gdbstub library, intended for remote debugging in GDB using the Remote Serial Protocol (RSP), support for fork-follow mode, the siginfo:read operation, and intercepting system calls in user space has been added.
  • The memory preallocation backends have been adapted for multithreaded operation and can now handle requests from multiple threads simultaneously.
  • In the tools for virtual machine migration, a ‘mapped-ram’ mode has been added that increases the efficiency of creating snapshots of virtual machines. The identification of zero memory pages has been improved, significantly speeding up the migration of inactive virtual machines when the system supports multifd. Support for restart from a saved state (checkpoint-restart) has been implemented during VFIO (Virtual Function I/O) based migrations.
  • Rewritten implementation of the ESP SCSI device (am53c974/dc390).
  • Support for the SM4 encryption algorithm has been added, enabling its use in the block device driver 'luks'.
  • Support for creating and using files with saved LUKS headers has been added to the 'luks' driver.
  • Support for L475E-IOT01A IoT boards, mp3-an536 (MPS3 with AN536 firmware), and raspi4b (Raspberry Pi 4 Model B) has been implemented in the ARM architecture emulator. Support for CPU extension emulations ECV (Enhanced Counter Virtualization), NV (Nested Virtualization), and NV2 (Enhanced Nested Virtualization) has been added. Emulator capabilities for Freescale i.MX6, Allwinner R40, Bananapi, Raspberry Pi, npcm7xx, and virt have been enhanced.
  • Support for architectural extensions of the RISC-V instruction set Zacas, amocas, RVA22, Zaamo, Zalrsc, and Ztso has been added to the RISC-V emulator. virtual machines Support for SMBIOS has been implemented in RISC-V. ACPI support has been added for SRAT, SLIT, AIA, and PLIC. RHCT table support has been updated.
  • The firmware of SeaBIOS-hppa has been updated in the HPPA architecture emulator to version 16. The maximum memory size has been increased from 3 GB to 3840 MB. Support for the ‘--nodefaults’ option has been added.
  • The LoongArch architecture emulator now supports KVM acceleration and implements vector extensions of the instruction set LSX/LASX.
  • Support for CVDG, CVB, CVBY, and CVBG instructions has been added to the s390x architecture emulator. LAE (Load Address Extended) emulation has been improved.
  • The architecture 68k emulator has introduced the nubus-virtio-mmio device, allowing access to virtio devices from q800 machines.
  • Building with the ‘-fzero-call-used-regs’ flag has been enabled, providing protection against information leakage from functions and reducing the number of blocks available for constructing ROP gadgets (Return-Oriented Programming) in exploits. A build with the ‘-ftrivial-auto-var-init=zero’ flag has also been added for automatic initialization to zero of all variables stored in the stack.
  • To run QEMU with KVM, it now requires at least Linux kernel 4.4. For ARM hosts, this threshold is planned to be raised to version 4.19 in the future. Support for using 32-bit Windows as host OS has been discontinued.
  • Support for OpenBSD 7.4 has been added.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster