QEMU 5.2 is uitgebracht en deze nieuwe versie bevat meer dan 3200 wijzigingen van 216 ontwikkelaars , waaronder ondersteuning voor live migratie voor RISC-V, experimentele ondersteuning voor de RISC-V hypervisor, ondersteuning voor meer boards en nog veel meer.
Voor degenen die niet bekend zijn met QEMU: het is een emulator waarmee je een programma dat is gemaakt voor een bepaald hardwareplatform kunt uitvoeren op een systeem met een volledig andere architectuur , bijvoorbeeld een ARM-applicatie op een x86-compatibele pc.
In de virtualisatiemodus in QEMU liggen de prestaties van het uitvoeren van code in een sandbox-omgeving dicht bij het hardwaresysteem vanwege de directe uitvoering van instructies op de CPU en het gebruik van de Xen-hypervisor of KVM-module.
Belangrijkste nieuwigheden van QEMU 5.2
Het buildsysteem is gewijzigd; voor het compileren van QEMU is nu de Ninja Toolkit vereist.
Er is ondersteuning toegevoegd voor het gebruik van het qemu-storage-daemon-proces op de achtergrond als backend voor vhost-user-blk door het stuurprogramma voor blokapparaten. Daarnaast is er een nieuw QMP-commando 'block-export-add' toegevoegd, dat het commando 'nbd-server-add' vervangt en ondersteuning biedt voor 'qemu-storage-daemon'.
Voor qcow2-images is ondersteuning voor uitgebreide L2-registers toegevoegd, waardoor ruimte kan worden toegewezen door onvolledige groepen (subclusters). Om L2 in te schakelen bij het maken van een image, moet u de optie "extended_l2 = on" specificeren.
Ook noemenswaardig is de verbeterde ondersteuning voor het gebruik van qemu als NBD-client, aangezien dit het aantal situaties vermindert die leiden tot time-outs bij het uitwisselen van gegevens via het netwerk, waardoor gastsystemen niet langer worden geblokkeerd. Qemu-nbd biedt de mogelijkheid om meerdere '-B name'-opties op te geven om meerdere gewijzigde bitmaps tegelijk te specificeren.
Een andere belangrijke wijziging is de nieuwe, krachtige migratiemodus met versleutelde gegevensoverdracht via TLS en multifd. De standaard bandbreedtelimiet voor migratie is verhoogd naar 1 Gbps.
De migratieparameter 'block-bitmap-mapping' is toegevoegd, waardoor een meer gedetailleerde controle mogelijk is over welke bitmaps tijdens de migratie worden overgedragen. Deze parameter werkt zelfs als de hostnamen aan de ontvangende kant verschillen van de bron.
Daarnaast zijn de nieuwe functies 'calc-dirty-rate' en 'query-dirty-rate' toegevoegd om de updatesnelheid tijdens de migratie te voorspellen, rekening houdend met de belasting van de bewerkingen in het RAM-geheugen.
We bieden ook ondersteuning voor de mp2-an386, mp2-an500, raspi3ap (Raspberry Pi 3 model A+), raspi0 (Raspberry Pi Zero), raspi1ap (Raspberry Pi A+) en npcm750-evb/quanta-gsj boards.
Voor de AArch32-architectuur is ondersteuning voor de ARMv8.2 FEAT_FP16-extensies (half-precision flaoting point) geïmplementeerd.
Tot slot worden er ook nieuwe opties voor virtiofsd genoemd voor het beheren van de weergave van uitgebreide xattr-attribuutnamen op het gastbesturingssysteem, het afzonderlijk verbinden van partities met verschillende mountpoints op het hostbesturingssysteem, en ook voor het specificeren van een sandbox-isolatiemechanisme als alternatief voor pivot_root.
En live migratieondersteuning naar de RISC-V-architectuuremulator, evenals experimentele hypervisorondersteuning voor RISC-V, bijgewerkt naar versie 0.6.1. Ondersteuning voor NUMA-sockets op virt/Spike-systemen is toegevoegd.
Andere opvallende wijzigingen in deze nieuwe versie zijn onder meer:
- De opdrachten guest-get-devices, guest-get-disks en guest-ssh-{get, add-remove} -authorized-keys zijn toegevoegd aan de QEMU-gastagent (qemu-ga).
- Ondersteuning toegevoegd voor op kvm-steal-time gebaseerde boekhouding.
- De HPPA-architectuuremulator ondersteunt het opstarten van NetBSD en zeer oude Linux-distributies zoals Debian 0.5 en 0.6.1.
- De PowerPC-architectuuremulator heeft verbeterde ondersteuning voor door de gebruiker gedefinieerde spatiëring voor de NUMA-topologie.
- De s390-architectuuremulator voor KVM heeft ondersteuning toegevoegd voor diagnostische instructies 0x318.
- De klassieke codegenerator TCG (Tiny Code Generator) implementeert ondersteuning voor aanvullende z14-instructies.
- Op vfio-pci-apparaten wordt informatie over de functionaliteit van de daadwerkelijke apparatuur verstrekt in plaats van de geëmuleerde functies.
- De Xtensa-architectuuremulator voegt ondersteuning toe voor de DFPU-coprocessor met drijvende-komma-opcodes met enkele en dubbele precisie.