Udgivelse af QEMU 6.0-emulatoren

Udgivelsen af ​​QEMU 6.0-projektet er blevet præsenteret. Som emulator giver QEMU dig mulighed for at køre et program kompileret til én hardwareplatform på et system med en helt anden arkitektur, for eksempel køre en ARM-applikation på en x86-kompatibel pc. I virtualiseringstilstand i QEMU er ydeevnen af ​​kodekørsel i et isoleret miljø tæt på et hardwaresystems ydeevne på grund af direkte udførelse af instruktioner på CPU'en og brugen af ​​Xen hypervisor eller KVM-modulet.

Projektet blev oprindeligt skabt af Fabrice Bellard for at tillade Linux-eksekverbare filer bygget til x86-platformen til at køre på ikke-x86-arkitekturer. Gennem årenes udvikling er der blevet tilføjet fuld emuleringsunderstøttelse for 14 hardwarearkitekturer, antallet af emulerede hardwareenheder har oversteget 400. Som forberedelse til version 6.0 er der foretaget mere end 3300 ændringer fra 268 udviklere.

Vigtigste forbedringer tilføjet i QEMU 6.0:

  • NVMe-controlleremulatoren bringes i overensstemmelse med NVMe 1.4-specifikationen og er udstyret med eksperimentel understøttelse af zoneinddelte navneområder, multipath I/O og end-to-end datakryptering på drevet.
  • Tilføjede eksperimentelle muligheder "-machine x-remote" og "-device x-pci-proxy-dev" for at flytte enhedsemulering til eksterne processer. I denne tilstand er kun emulering af lsi53c895 SCSI-adapteren understøttet i øjeblikket.
  • Tilføjet eksperimentel støtte til at skabe snapshots af RAM-indhold.
  • Tilføjet et FUSE-modul til eksport af blokenheder, så du kan montere et udsnit af tilstanden for enhver blokenhed, der bruges i gæstesystemet. Eksporten udføres gennem QMP-kommandoen blok-eksport-tilføj eller gennem "--eksport"-indstillingen i qemu-storage-daemon-værktøjet.
  • ARM-emulatoren tilføjer understøttelse af ARMv8.1-M 'Helium'-arkitekturen og Cortex-M55-processorer samt de ARMv8.4 udvidede TTST-, SEL2- og DIT-instruktioner. Tilføjet understøttelse af ARM-kort mps3-an524 og mps3-an547 også. Yderligere enhedsemulering er blevet implementeret for xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx og sabrelite-kort.
  • For ARM er der i emuleringstilstande på system- og brugermiljøniveauer implementeret understøttelse af ARMv8.5 MTE (MemTag, Memory Tagging Extension), som giver dig mulighed for at binde tags til hver hukommelsesallokeringsoperation og organisere en pointercheck, når adgang til hukommelse, som skal være forbundet med den korrekte tag . Udvidelsen kan bruges til at blokere udnyttelsen af ​​sårbarheder forårsaget af adgang til allerede frigjorte hukommelsesblokke, bufferoverløb, adgange før initialisering og brug uden for den aktuelle kontekst.
  • 68k arkitekturemulatoren har tilføjet understøttelse af en ny type emuleret maskine "virt", som bruger virtio-enheder til at optimere ydeevnen.
  • x86-emulatoren tilføjer muligheden for at bruge AMD SEV-ES (Secure Encrypted Virtualization) teknologi til at kryptere processorregistre, der bruges i gæstesystemet, hvilket gør indholdet af registrene utilgængeligt for værtsmiljøet, medmindre gæstesystemet eksplicit giver adgang til dem.
  • Den klassiske TCG (Tiny Code Generator) kodegenerator, når den emulerer x86-systemer, implementerer understøttelse af PKS (Protection Keys Supervisor) mekanismen, som kan bruges til at beskytte adgangen til privilegerede hukommelsessider.
  • En ny type emulerede maskiner "virt" er blevet tilføjet til MIPS-arkitekturemulatoren med understøttelse af kinesiske Loongson-3-processorer.
  • I PowerPC-arkitekturemulatoren til emulerede maskiner "powernv", er der tilføjet understøttelse af eksterne BMC-controllere. For emulerede pseries-maskiner leveres meddelelse om fejl ved forsøg på at fjerne hukommelse og CPU.
  • Tilføjet understøttelse af emulering af Qualcomm Hexagon-processorer med DSP.
  • Den klassiske TCG (Tiny Code Generator)-kodegenerator understøtter macOS-værtsmiljøer på systemer med den nye Apple M1 ARM-chip.
  • RISC-V-arkitekturemulatoren til Microchip PolarFire-kort understøtter QSPI NOR-flash.
  • Tricore-emulatoren understøtter nu den nye TriBoard-kortmodel, som emulerer Infineon TC27x SoC.
  • ACPI-emulatoren giver mulighed for at tildele navne til netværksadaptere i gæstesystemer, der er uafhængige af den rækkefølge, de er forbundet til PCI-bussen.
  • virtiofs har tilføjet understøttelse af muligheden FUSE_KILLPRIV_V2 for at forbedre gæstens præstation.
  • VNC har tilføjet understøttelse af markørgennemsigtighed og understøttelse af skalering af skærmopløsning i virtio-vga, baseret på vinduesstørrelsen.
  • QMP (QEMU Machine Protocol) har tilføjet understøttelse af asynkron parallel adgang ved udførelse af backup-opgaver.
  • USB-emulatoren har tilføjet muligheden for at spare trafik genereret, når du arbejder med USB-enheder, til en separat pcap-fil til efterfølgende inspektion i Wireshark.
  • Tilføjet nye QMP-kommandoer load-snapshot, save-snapshot og delete-snapshot for at administrere qcow2-snapshots.
  • Sårbarheder CVE-2020-35517 og CVE-2021-20263 er blevet rettet i virtiofs. Det første problem giver adgang til værtsmiljøet fra gæstesystemet ved at oprette en speciel enhedsfil i gæstesystemet af en privilegeret bruger i en mappe, der deles med værtsmiljøet. Det andet problem er forårsaget af en fejl i håndteringen af ​​udvidede attributter i 'xattrmap'-indstillingen og kan forårsage, at skrivetilladelser ignoreres og privilegie-eskalering i gæstesystemet.

Kilde: opennet.ru

Tilføj en kommentar