Utgivelse av QEMU 6.0-emulatoren

Utgivelsen av QEMU 6.0-prosjektet er presentert. Som emulator lar QEMU deg kjøre et program kompilert for én maskinvareplattform på et system med en helt annen arkitektur, for eksempel kjøre en ARM-applikasjon på en x86-kompatibel PC. I virtualiseringsmodus i QEMU er ytelsen til kodekjøring i et isolert miljø nær ytelsen til et maskinvaresystem på grunn av direkte utførelse av instruksjoner på CPU og bruk av Xen hypervisor eller KVM-modul.

Prosjektet ble opprinnelig opprettet av Fabrice Bellard for å la Linux-kjørbare filer bygget for x86-plattformen kjøre på ikke-x86-arkitekturer. I løpet av årene med utvikling har full emuleringsstøtte blitt lagt til for 14 maskinvarearkitekturer, antallet emulerte maskinvareenheter har oversteget 400. Som forberedelse til versjon 6.0 er det gjort mer enn 3300 endringer fra 268 utviklere.

Viktige forbedringer lagt til i QEMU 6.0:

  • NVMe-kontrolleremulatoren er brakt i samsvar med NVMe 1.4-spesifikasjonen og er utstyrt med eksperimentell støtte for sonede navneområder, flerveis I/O og ende-til-ende datakryptering på stasjonen.
  • Lagt til eksperimentelle alternativer "-machine x-remote" og "-device x-pci-proxy-dev" for å flytte enhetsemulering til eksterne prosesser. I denne modusen er det for øyeblikket kun emulering av lsi53c895 SCSI-adapteren som støttes.
  • Lagt til eksperimentell støtte for å lage øyeblikksbilder av RAM-innhold.
  • Lagt til en FUSE-modul for eksport av blokkenheter, slik at du kan montere en del av tilstanden til enhver blokkenhet som brukes i gjestesystemet. Eksporten utføres gjennom QMP-kommandoen block-export-add eller gjennom "--export"-alternativet i qemu-storage-daemon-verktøyet.
  • ARM-emulatoren legger til støtte for ARMv8.1-M 'Helium'-arkitekturen og Cortex-M55-prosessorer, samt ARMv8.4 utvidede TTST-, SEL2- og DIT-instruksjoner. Lagt til støtte for ARM-kort mps3-an524 og mps3-an547 også. Ytterligere enhetsemulering er implementert for xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx og sabrelite-kort.
  • For ARM, i emuleringsmoduser på system- og brukermiljønivå, er støtte for ARMv8.5 MTE (MemTag, Memory Tagging Extension)-utvidelsen implementert, som lar deg binde tagger til hver minneallokeringsoperasjon og organisere en pekersjekk når tilgang til minne, som må være knyttet til riktig tag . Utvidelsen kan brukes til å blokkere utnyttelse av sårbarheter forårsaket av tilgang til allerede frigjorte minneblokker, bufferoverløp, tilganger før initialisering og bruk utenfor gjeldende kontekst.
  • 68k arkitekturemulatoren har lagt til støtte for en ny type emulert maskin "virt", som bruker virtio-enheter for å optimalisere ytelsen.
  • x86-emulatoren legger til muligheten til å bruke AMD SEV-ES (Secure Encrypted Virtualization) teknologi for å kryptere prosessorregistre som brukes i gjestesystemet, noe som gjør innholdet i registrene utilgjengelig for vertsmiljøet med mindre gjestesystemet eksplisitt gir tilgang til dem.
  • Den klassiske TCG (Tiny Code Generator) kodegeneratoren, når den emulerer x86-systemer, implementerer støtte for PKS (Protection Keys Supervisor)-mekanismen, som kan brukes til å beskytte tilgangen til privilegerte minnesider.
  • En ny type emulerte maskiner "virt" er lagt til MIPS-arkitekturemulatoren med støtte for kinesiske Loongson-3-prosessorer.
  • I PowerPC-arkitekturemulatoren for emulerte maskiner "powernv", er støtte for eksterne BMC-kontrollere lagt til. For emulerte pserie-maskiner gis det varsling om feil ved forsøk på å fjerne minne og CPU.
  • Lagt til støtte for emulering av Qualcomm Hexagon-prosessorer med DSP.
  • Den klassiske TCG-kodegeneratoren (Tiny Code Generator) støtter macOS-vertsmiljøer på systemer med den nye Apple M1 ARM-brikken.
  • RISC-V-arkitekturemulatoren for Microchip PolarFire-kort støtter QSPI NOR-blits.
  • Tricore-emulatoren støtter nå den nye TriBoard-kortmodellen, som emulerer Infineon TC27x SoC.
  • ACPI-emulatoren gir muligheten til å tildele navn til nettverkskort i gjestesystemer som er uavhengige av rekkefølgen de er koblet til PCI-bussen.
  • virtiofs har lagt til støtte for FUSE_KILLPRIV_V2-alternativet for å forbedre gjestenes ytelse.
  • VNC har lagt til støtte for markørtransparens og støtte for skalering av skjermoppløsning i virtio-vga, basert på vindusstørrelsen.
  • QMP (QEMU Machine Protocol) har lagt til støtte for asynkron parallell tilgang når du utfører sikkerhetskopieringsoppgaver.
  • USB-emulatoren har lagt til muligheten til å lagre trafikk generert når du arbeider med USB-enheter i en egen pcap-fil for etterfølgende inspeksjon i Wireshark.
  • Lagt til nye QMP-kommandoer last-snapshot, save-snapshot og delete-snapshot for å administrere qcow2-øyeblikksbilder.
  • Sårbarhetene CVE-2020-35517 og CVE-2021-20263 har blitt fikset i virtiofs. Det første problemet gir tilgang til vertsmiljøet fra gjestesystemet ved å lage en spesiell enhetsfil i gjestesystemet av en privilegert bruker i en katalog som deles med vertsmiljøet. Det andre problemet er forårsaket av en feil i håndteringen av utvidede attributter i 'xattrmap'-alternativet og kan føre til at skrivetillatelser ignoreres og rettighetseskalering i gjestesystemet.

Kilde: opennet.ru

Legg til en kommentar