Release of the QEMU 5.0 emulator

Submitted by project release QEMU 5.0. 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.0, more than 2800 changes have been made from 232 developers.

Key improvements, added in QEMU 5.0:

  • The ability to forward part of the file system of the host environment to the guest system using virtiofsd. The guest system can mount a directory marked for export on the host system side, which greatly simplifies the organization of shared access to directories in virtualization systems. Unlike the use of network file systems such as NFS and virtio-9P, virtiofs allows you to achieve performance close to a local file system;
  • Support live migration of data from external processes using the QEMU D-Bus;
  • Ability to use memory backends to ensure the operation of the main RAM of the guest system. The backend is specified using the “-machine memory-backend” option;
  • New "compress" filter, which can be used to create compressed image backups;
  • The "qemu-img measure" command can now work with LUKS images, and the "--target-is-zero" option has been added to the "qemu-img convert" command to skip zeroing the target image;
  • Added experimental support for the qemu-storage-daemon process, providing access to the QEMU block level and QMP commands, including running block devices and the built-in NBD server, without having to run a full virtual machine;
  • The ARM architecture emulator has added the ability to emulate Cortex-M7 CPUs and provides support for tacoma-bmc, Netduino Plus 2 and Orangepi PC boards. Added support for vTPM and virtio-iommu devices to 'virt' emulated machines. The ability to use AArch32 host systems to run KVM guest environments has been deprecated. Support for emulation of the following architecture features has been implemented:
    • ARMv8.1: HEV, VMID16, PAN, PMU
    • ARMv8.2: UAO, DCPoP, ATS1E1, TTCNP
    • ARMv8.3: RCPC, CCIDX
    • ARMv8.4: PMU, RCPC
  • Added graphics console support to the HPPA architecture emulator using the HP Artist graphics device;
  • Added support for the GINVT (Global Invalidation TLB) instruction to the MIPS architecture emulator;
  • Emulation of KVM hardware acceleration tools for running guest systems has been added to the PowerPC architecture emulator for 'powernv' machines
    KVM with classic TCG code generator (Tiny Code Generator). To emulate persistent memory, support for NVDIMMs reflected in the file has been added. For 'pseries' machines, the need to reboot has been removed to coordinate the operation of the XIVE/XICS interrupt controllers in the “ic-mode=dual” mode;

  • The RISC-V architecture emulator for the 'virt' and 'sifive_u' boards provides support for standard Linux syscon drivers for power and reboot management. Goldfish RTC support has been added for the 'virt' board. Added experimental implementation of hypervisor extensions;
  • AIS (Adapter Interrupt Suppression) support has been added to the s390 architecture emulator when operating in KVM mode.

Source: opennet.ru

Add a comment