Udgivelse af emulatoren QEMU 9.0.0

QEMU 9.0-projektet er blevet præsenteret. Som emulator gør QEMU det muligt at køre programmer, der er bygget til én hardwareplatform, på et system med en helt anden arkitektur, for eksempel at køre en applikation til ARM på en x86-kompatibel PC. I virtualiseringsmodus er ydelsen for kodekørsel i et isoleret miljø tæt på den hardwarebaserede systemydelse takket være direkte udførelse af instruktioner på CPU'en og brug af hypervisoren Xen eller KVM-modulet i Linux, eller NVMM-modulet i NetBSD.

Projektet blev oprindeligt skabt af Fabrice Bellard med henblik på at muliggøre kørsel af eksekverbare filer bygget til x86-platformen på arkitekturer, der adskiller sig fra x86. Gennem årene er der blevet tilføjet støtte til fuld emulering for 14 hardwarearkitekturer, og antallet af emulerede hardwareenheder har overskredet 400. I forberedelsen af version 9.0 er der blevet indført mere end 2700 ændringer fra 220 udviklere.

Nøgleforbedringer, der er tilføjet i QEMU 9.0:

  • I virtio-blk-driveren, der leverer en virtuel blok-enhed til virtual machines, er der tilføjet støtte til en multiquede system, der gør det muligt at opdele køer til forskellige blok-enheder for at sikre multitrådet adgang på multikernede systemer (forskellige køer for én disk kan behandles af forskellige I/O-tråde).
  • I usb-storage blok-enheden er der tilføjet støtte til egenskaberne 'backend_defaults', 'logical_block_size', 'physical_block_size', 'min_io_size', 'opt_io_size' og 'discard_granularity'.
  • I gdbstub-biblioteket, der er beregnet til fjernfejlfinding i GDB ved hjælp af RSP-protokollen (Remote Serial Protocol), er der tilføjet støtte til fork-follow mode, siginfo:read operationen og opsnapping af systemopkald i brugerrummet.
  • Backendene til forudgående hukommelsesallokering (preallocation) er tilpasset til at fungere i multitrådet mode og kan nu samtidig behandle forespørgsler fra flere tråde.
  • I værktøjerne til migration af virtuelle maskiner er der tilføjet en 'mapped-ram' tilstand, som øger effektiviteten af oprettelsen af snapshots af virtuelle maskiner. Identifikationen af nul-siden i hukommelsen er forbedret, hvilket har gjort det muligt at accelerere migreringen af inaktive virtuelle maskiner betydeligt, når systemet understøtter multifd. Ved migration baseret på VFIO (Virtual Function I/O) er der blevet implementeret støtte til genstart fra en gemt tilstand (checkpoint-restart).
  • Omdannet implementering af ESP SCSI (am53c974/dc390).
  • Tilføjet støtte til krypteringsalgoritmen SM4 og muligheden for at bruge den i blokenheden 'luks'.
  • I driveren 'luks' er der tilføjet støtte til oprettelse og brug af filer med gemte LUKS-overskrifter.
  • I ARM-arkitektur emulatoren er der tilføjet støtte til L475E-IOT01A IoT, mp3-an536 (MPS3 med AN536 firmware) og raspi4b (Raspberry Pi 4 Model B). Understøttelse af emulering af processorudvidelserne ECV (Enhanced Counter Virtualization), NV (Nested Virtualization) og NV2 (Enhanced Nested Virtualization) er blevet tilføjet. Emulators mulighederne for Freescale i.MX6, Allwinner R40, Bananapi, Raspberry Pi, npcm7xx og virt er blevet udvidet.
  • I RISC-V emulatoren er der tilføjet støtte til særlige arkitekturudvidelser i kommandosættet Zacas, amocas, RVA22, Zaamo, Zalrsc og Ztso. virtuelle maskiner RISC-V understøtter nu SMBIOS. Der er implementeret ACPI-support for SRAT, SLIT, AIA og PLIC. Støtten til RHCT-tabeller er blevet opdateret.
  • I HPPA-arkitektur emulatoren opdateres SeaBIOS-hppa firmware til version 16. Den maksimale hukommelsesstørrelse er steget fra 3 GB til 3840 MB. Support for valgmuligheden '—nodefaults' er blevet tilføjet.
  • I LoongArch-arkitektur emulatoren er der kommet støtte til KVM-accelerering og implementeret vektorerede udvidelser af kommandosættet LSX/LASX.
  • I s390x-arkitektur emulatoren er der tilføjet støtte til instruktioner CVDG, CVB, CVBY og CVBG. Emuleringen af LAE (Load Address Extended) er forbedret.
  • I 68k-arkitektur emulatoren er det nye device nubus-virtio-mmio blevet tilføjet, som giver adgang til virtio-enheder fra q800 maskiner.
  • Der er sikret en kompilering med flaget '-fzero-call-used-regs', som beskytter mod informationslækage fra funktioner og reducerer antallet af blokke, der kan bruges til at bygge ROP-gadgets (Return-Oriented Programming) i exploits. Der er også tilføjet en kompilering med flaget '-ftrivial-auto-var-init=zero' for automatisk at initialisere alle variabler, der opbevares på stakken, til nul.
  • For at køre QEMU med KVM kræves mindst Linux-kernel 4.4. For ARM-værter planlægges det at hæve dette niveau til version 4.19 i fremtiden. Støtten til at bruge 32-bit Windows som værts-OS er blevet ophævet.
  • Tilføjet støtte til OpenBSD 7.4.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster