Vrijgave van de QEMU 6.0-emulator

De release van het QEMU 6.0-project wordt gepresenteerd. Als emulator kunt u met QEMU een programma uitvoeren dat is gebouwd voor één hardwareplatform op een systeem met een geheel andere architectuur, bijvoorbeeld een ARM-toepassing uitvoeren op een x86-compatibele pc. In de virtualisatiemodus in QEMU ligt de uitvoering van code-uitvoering in een geïsoleerde omgeving dicht bij een hardwaresysteem vanwege 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 6.0 zijn er meer dan 3300 wijzigingen aangebracht door 268 ontwikkelaars.

Belangrijkste verbeteringen toegevoegd in QEMU 6.0:

  • De NVMe-controlleremulator is in overeenstemming gebracht met de NVMe 1.4-specificatie en is uitgerust met experimentele ondersteuning voor gezoneerde naamruimten, multipath I/O en end-to-end gegevensversleuteling op de schijf.
  • Experimentele opties “-machine x-remote” en “-device x-pci-proxy-dev” toegevoegd om apparaatemulatie naar externe processen te verplaatsen. In deze modus wordt momenteel alleen emulatie van de lsi53c895 SCSI-adapter ondersteund.
  • Experimentele ondersteuning toegevoegd voor het maken van momentopnamen van RAM-inhoud.
  • Er is een FUSE-module toegevoegd voor het exporteren van blokapparaten, zodat u een deel van de status van elk blokapparaat dat in het gastsysteem wordt gebruikt, kunt koppelen. Exporteren wordt uitgevoerd via het QMP-opdrachtblok-export-add of via de optie “--export” in het hulpprogramma qemu-storage-daemon.
  • De ARM-emulator voegt ondersteuning toe voor de ARMv8.1-M 'Helium'-architectuur en Cortex-M55-processors, evenals de uitgebreide ARMv8.4 TTST-, SEL2- en DIT-instructies. Ondersteuning toegevoegd voor ARM-borden mps3-an524 en mps3-an547. Er is extra apparaatemulatie geïmplementeerd voor xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx en sabrelite-kaarten.
  • Voor ARM is in emulatiemodi op systeem- en gebruikersomgevingsniveau ondersteuning voor de ARMv8.5 MTE-extensie (MemTag, Memory Tagging Extension) geïmplementeerd, waarmee u tags kunt binden aan elke geheugentoewijzingsbewerking en een pointercontrole kunt organiseren wanneer toegang krijgen tot geheugen, dat aan de juiste tag moet worden gekoppeld. De extensie kan worden gebruikt om de exploitatie van kwetsbaarheden te blokkeren die worden veroorzaakt door toegang tot reeds vrijgemaakte geheugenblokken, bufferoverflows, toegang vóór initialisatie en gebruik buiten de huidige context.
  • De 68k-architectuuremulator heeft ondersteuning toegevoegd voor een nieuw type geëmuleerde machine “virt”, die virtio-apparaten gebruikt om de prestaties te optimaliseren.
  • De x86-emulator voegt de mogelijkheid toe om AMD SEV-ES-technologie (Secure Encrypted Virtualization) te gebruiken om processorregisters die in het gastsysteem worden gebruikt te coderen, waardoor de inhoud van de registers ontoegankelijk wordt voor de hostomgeving, tenzij het gastsysteem er expliciet toegang toe verleent.
  • De klassieke TCG-codegenerator (Tiny Code Generator) implementeert bij het emuleren van x86-systemen ondersteuning voor het PKS-mechanisme (Protection Keys Supervisor), dat kan worden gebruikt om de toegang tot geprivilegieerde geheugenpagina's te beschermen.
  • Een nieuw type geëmuleerde machines “virt” is toegevoegd aan de MIPS-architectuuremulator met ondersteuning voor Chinese Loongson-3-processors.
  • In de PowerPC-architectuuremulator voor geëmuleerde machines “powernv” is ondersteuning voor externe BMC-controllers toegevoegd. Voor geëmuleerde pserie-machines wordt een melding gegeven van fouten bij pogingen om geheugen en CPU hot te verwijderen.
  • Ondersteuning toegevoegd voor het emuleren van Qualcomm Hexagon-processors met DSP.
  • De klassieke TCG-codegenerator (Tiny Code Generator) ondersteunt macOS-hostomgevingen op systemen met de nieuwe Apple M1 ARM-chip.
  • De RISC-V-architectuuremulator voor Microchip PolarFire-kaarten ondersteunt QSPI NOR-flash.
  • De Tricore-emulator ondersteunt nu het nieuwe TriBoard-bordmodel, dat de Infineon TC27x SoC emuleert.
  • De ACPI-emulator biedt de mogelijkheid om namen toe te wijzen aan netwerkadapters in gastsystemen die onafhankelijk zijn van de volgorde waarin ze op de PCI-bus zijn aangesloten.
  • virtiofs heeft ondersteuning toegevoegd voor de FUSE_KILLPRIV_V2 optie om de gastprestaties te verbeteren.
  • VNC heeft ondersteuning toegevoegd voor cursortransparantie en ondersteuning voor het schalen van de schermresolutie in virtio-vga, gebaseerd op de venstergrootte.
  • QMP (QEMU Machine Protocol) heeft ondersteuning toegevoegd voor asynchrone parallelle toegang bij het uitvoeren van back-uptaken.
  • De USB-emulator heeft de mogelijkheid toegevoegd om verkeer dat wordt gegenereerd bij het werken met USB-apparaten op te slaan in een afzonderlijk pcap-bestand voor latere inspectie in Wireshark.
  • Nieuwe QMP-opdrachten toegevoegd: load-snapshot, save-snapshot en delete-snapshot om qcow2-snapshots te beheren.
  • Kwetsbaarheden CVE-2020-35517 en CVE-2021-20263 zijn opgelost in virtiofs. Het eerste probleem maakt toegang tot de hostomgeving vanaf het gastsysteem mogelijk door een speciaal apparatenbestand in het gastsysteem aan te maken door een bevoorrechte gebruiker in een map die wordt gedeeld met de hostomgeving. Het tweede probleem wordt veroorzaakt door een bug in de verwerking van uitgebreide attributen in de 'xattrmap'-optie en kan ervoor zorgen dat schrijfrechten worden genegeerd en dat er privileges ontstaan ​​binnen het gastsysteem.

Bron: opennet.ru

Voeg een reactie