Vrijgave van de QEMU 4.0-emulator

Gevormd project vrijgeven QEMU 4.0. Als emulator kunt u met QEMU een programma uitvoeren dat is gecompileerd voor één hardwareplatform op een systeem met een geheel andere architectuur, bijvoorbeeld een ARM-applicatie uitvoeren op een x86-compatibele pc. In de virtualisatiemodus in QEMU liggen de prestaties van code-uitvoering in een geïsoleerde omgeving dicht bij die van het oorspronkelijke systeem, dankzij de directe uitvoering van instructies op de CPU en het gebruik van de Xen-hypervisor of KVM-module.

Het project is oorspronkelijk gemaakt door Fabrice Bellard om Linux-uitvoerbare bestanden die zijn gebouwd voor het x86-platform te laten draaien op niet-x86-architecturen. In de loop van de jaren van ontwikkeling is volledige emulatieondersteuning toegevoegd voor 14 hardware-architecturen, het aantal geëmuleerde hardware-apparaten is de 400 overschreden. Ter voorbereiding op versie 4.0 zijn er meer dan 3100 wijzigingen aangebracht door 220 ontwikkelaars.

Toets verbeteringentoegevoegd in QEMU 4.0:

  • Ondersteuning voor ARMv8+ instructie-uitbreidingen is toegevoegd aan de ARM-architectuuremulator: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT en BTI. Ondersteuning toegevoegd voor het emuleren van Musca- en MPS2-borden. Verbeterde ARM PMU-emulatie (Power Management Unit). Naar het perron virt de mogelijkheid toegevoegd om meer dan 255 GB RAM te gebruiken en ondersteuning voor u-boot-images met het type “noload”;

  • In de x86-architectuuremulator in de virtualisatieversnellingsengine HAX (Intel Hardware Accelerated Execution) heeft ondersteuning toegevoegd voor POSIX-compatibele hosts zoals Linux en NetBSD (voorheen werd alleen het Darwin-platform ondersteund). In de Q35 chipset-emulator (ICH9) voor de belangrijkste PCIe-poorten kunnen de maximale snelheid (16GT/s) en het aantal verbindingslijnen (x32) gedefinieerd in de PCIe 4.0-specificatie nu optioneel worden aangegeven (om compatibiliteit te garanderen is 2.5GT standaard geïnstalleerd voor oudere typen QEMU-machines /s en x1). Het is mogelijk om Xen PVH-afbeeldingen te laden met de “-kernel” optie;
  • De MIPS-architectuuremulator heeft ondersteuning toegevoegd voor multi-threaded emulatie met behulp van de klassieke TCG-codegenerator (Tiny Code Generator). Ook ondersteuning toegevoegd voor emulatie van CPU I7200 (nanoMIPS32 ISA) en I6500 (MIPS64R6 ISA), de mogelijkheid om CPU-typeverzoeken te verwerken met behulp van het QMP (QEMU Management Protocol), ondersteuning toegevoegd voor SAARI- en SAAR-configuratieregisters. Verbeterde prestaties van virtuele machines met het Fulong 2E-type. Bijgewerkte implementatie van Interthread Communication Unit;
  • In de PowerPC-architectuuremulator is ondersteuning voor het emuleren van de XIVE interruptcontroller toegevoegd, is ondersteuning voor POWER9 uitgebreid en voor de P-serie is de mogelijkheid om PCI-hostbridges (PHB, PCI hostbridge) hot-pluggable te maken toegevoegd. Bescherming tegen Spectre- en Meltdown-aanvallen is standaard ingeschakeld;
  • Ondersteuning voor PCI- en USB-emulatie is toegevoegd aan de RISC-V-architectuuremulator. De ingebouwde foutopsporingsserver (gdbserver) ondersteunt nu het specificeren van registerlijsten in XML-bestanden. Ondersteuning toegevoegd voor mstatusvelden TSR, TW en TVM;
  • De s390-architectuuremulator heeft ondersteuning toegevoegd voor het z14 GA 2 CPU-model, evenals ondersteuning voor het emuleren van instructie-uitbreidingen voor drijvende-komma- en vectorbewerkingen. De mogelijkheid om apparaten te hot-pluggen is toegevoegd aan vfio-ap;
  • De processoremulator van de Tensilica Xtensa-familie heeft SMP-ondersteuning voor Linux verbeterd en ondersteuning toegevoegd voor de FLIX (Flexible Length Instructions Extension);
  • De optie '-display spice-app' is toegevoegd aan de grafische interface om een ​​versie van de Spice-client voor externe toegang te configureren en te starten met een ontwerp dat lijkt op de QEMU GTK-interface;
  • Ondersteuning toegevoegd voor toegangscontrole met behulp van de tls-authz/sasl-authz-opties aan de VNC-serverimplementatie;
  • QMP (QEMU Management Protocol) heeft ondersteuning toegevoegd voor gecentraliseerde/externe (out-of-band) opdrachtuitvoering en aanvullende opdrachten geïmplementeerd voor het werken met blokapparaten;
  • Er is een implementatie van de EDID-interface toegevoegd aan VFIO voor ondersteunde mdevs (Intel vGPU's), waardoor u de schermresolutie kunt wijzigen met behulp van de xres- en yres-opties;
  • Er is een nieuw 'xen-disk'-apparaat toegevoegd voor Xen, dat onafhankelijk een schijf-backend voor Xen PV kan maken (zonder toegang te krijgen tot xenstore). De prestaties van de Xen PV-schijfbackend zijn verbeterd en de mogelijkheid om de schijfgrootte te wijzigen is toegevoegd;
  • Diagnostische en traceringsmogelijkheden zijn uitgebreid in netwerkblokapparaten, en clientcompatibiliteit met problematische NBD-serverimplementaties is verbeterd. Opties “--bitmap”, “--list” en “--tls-authz” toegevoegd aan qemu-nbd;
  • Ondersteuning voor PCI IDE-modus toegevoegd aan het geëmuleerde IDE/via-apparaat;
  • Ondersteuning toegevoegd voor het gebruik van het lzfse-algoritme om dmg-afbeeldingen te comprimeren. Voor het qcow2-formaat is ondersteuning voor het verbinden van externe databestanden toegevoegd. qcow2-uitpakbewerkingen worden verplaatst naar een aparte thread. Ondersteuning toegevoegd voor de “blockdev-create” -bewerking in vmdk-images;
  • Het virtio-blk blokapparaat heeft ondersteuning toegevoegd voor DISCARD (informeren over de vrijgave van blokken) en WRITE_ZEROES (een reeks logische blokken op nul zetten) operaties;
  • Het pvrdma-apparaat ondersteunt RDMA Management Datagram-services (MAD);
  • Bijgedragen veranderingen, waardoor achterwaartse compatibiliteit wordt geschonden. In plaats van de "handle" optie in "-fsdev" en "-virtfs" zou u bijvoorbeeld de "local" of "proxy" opties moeten gebruiken. De opties “-virtioconsole” (vervangen door “-device virtconsole”), “-no-frame”, “-clock”, “-enable-hax” (vervangen door “-accel hax”) zijn verwijderd. Apparaat "ivshmem" verwijderd (moet "ivshmem-doorbell" en "ivshmem-plain" gebruiken). Ondersteuning voor bouwen met SDL1.2 is stopgezet (u moet SDL2 gebruiken).

Bron: opennet.ru

Voeg een reactie