Release of the QEMU 4.2 emulator

Submitted by project release QEMU 4.2. As an emulator, QEMU allows you to run a program built for one hardware platform on a system with a completely different architecture, for example, run an ARM application on an x86-compatible PC. In the virtualization mode in QEMU, the performance of code execution in an isolated environment is close to the native system due to the direct execution of instructions on the CPU and the use of the Xen hypervisor or KVM module.

The project was originally created by Fabrice Bellard to allow Linux executables built for the x86 platform to run on non-x86 architectures. Over the years of development, full emulation support has been added for 14 hardware architectures, the number of emulated hardware devices has exceeded 400. In preparation for version 4.2, more than 2200 changes have been made from 198 developers.

Key improvements, added in QEMU 4.2:

  • The classic TCG (Tiny Code Generator) code generator supports plugins for monitoring processor instructions and memory addresses;
  • In the block device driver NBD (Network Block Device) provides more efficient processing of copy-on-read requests. The NBD server code is optimized for copying sparse images (with voids). General improvements have been made to the NBD client and server implementation;
  • Improved performance of LUKS disk encryption using the AES-XTS algorithm;
  • vfio-pci added support for the "failover_pair_id" property to simplify the migration of VFIO devices;
  • virtio-mmio adds support for the virtio-compatible 2 standard and the packed virtual queue mechanism defined in the virtio 1.1 specification (virtualqueue) to exchange data with a virtual I/O device in batch mode;
  • A new type of emulated machine, "microvm", has been added to the x86 emulator, using virtio-mmio instead of PCI to optimize performance. Implemented the ability to enable and disable VMX using the “-cpu” flags. Added support for emulating AVX512 BFloat16 extensions. Support for new CPU models Denverton (server SoC based on Atom), Snowridge and Dhyana is provided. Stabilized support for macOS Hypervisor Framework (“-accel hvf”);
  • The ARM architecture emulator has added support for emulating the Aspeed AST2600 SoC (“ast2600-evb”). Added support for Semihosting 2.0 technology with STDOUT_STDERR/EXIT_EXTENDED extensions, which allows the emulated device to use stdout, stderr and stdin to create files on the host side. KVM has added the ability to use more than 256 CPUs and provides support for SVE SIMD instructions. In virtual machines with type "virtue» support for hot plugging of memory has been implemented. Improved emulation performance using the TCG code generator.
  • The PowerPC architecture emulator now has the ability to emulate POWER9 instructions mffsce, mffscrn and mffscrni. Emulated "powernv" machines add support for Homer and OCC SRAM system devices;
  • In the RISC-V architecture emulator, the “-initrd” option has been added and the ability to view the full state of the architecture in the debugger;
  • The s390 architecture emulator supports IEP (Instruction Execution Protection) instructions;
  • The 68k architecture emulator has added initial capability to emulate the Macintosh Quadro 800 and classic NeXTcube systems;
  • The xtensa architecture emulator has added a new type of emulated machine “virt” and implemented support for ABI call0 for user-space emulation.

Source: opennet.ru

Add a comment