Release of the QEMU 5.1 emulator

Submitted by project release QEMU 5.1. 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 5.1, more than 2500 changes have been made from 235 developers.

Key improvements, added in QEMU 5.1:

  • Added support for CPU emulation based on architecture AVR. Implemented support for Arduino Duemilanove (ATmega168), Arduino Mega 2560 (ATmega2560),
    Arduino Mega (ATmega1280) and Arduino UNO (ATmega328P).

  • Added hot-unplug and hot-plug nvdimm memory for ACPI guests to the ARM architecture emulator. Implemented support for ARMv8.2 extensions TTS2UXN ΠΈ ARMv8.5 MemTag. Support for sonorapass-bmc board provided.
  • Support for Loongson 3A CPUs (R1 and R4) has been added to the MIPS architecture emulator. Improved performance of FPU and MSA instruction emulation.
  • Support for SiFive E34 and Ibex CPUs has been added to the RISC-V architecture emulator. Implemented support for HiFive1 revB and OpenTitan boards. Support for more than one CPU is provided for Spike machines.
  • The PowerPC architecture emulator now supports error recovery in guests using FWNMI.
  • KVM support for secure virtualization (secure execution mode) has been added for the s390 architecture.
  • The x86 emulator reduces the overhead of virtualizing non-adapted Windows guests by providing a Windows ACPI Emulated Device Table (WAET). Improved acceleration support HVF for macOS.
  • The block device driver now supports virtual storage devices with 2MB logical and physical blocks.
  • Added the ability to pass passwords and encryption keys to QEMU via the Linux kernel keyring using objects of the new "secret-keyring" type.
  • For the qcow2 format, support for the zstd compression algorithm has been implemented.
  • A new 'bitmap' command has been added to the qemu-img utility for manipulating constant bitmaps in qcow2 files. qemu-img also implements LUKS key management (keyslot) and offers additional features for the "map" (--start-offset, --max-length) and "convert" (--bitmaps) commands, the "measure" command has added output of information about size of constant bitmaps in qcow2 files.
  • The NVMe driver has added support for Persistent Memory Regions, which appeared in the NVMe 1.4 specification.
  • In virtio for guest systems with the classic TCG (Tiny Code Generator) code generator, the ability to use processes vhost-user, including virtiofsd. Added VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS extension to vhost-user to allow registration of more than 8 RAM slots.

Source: opennet.ru

Add a comment