Lansarea emulatorului QEMU 6.0

A fost lansată versiunea proiectului QEMU 6.0. Ca emulator, QEMU permite să rulezi un program compilat pentru o platformă hardware pe un sistem cu o arhitectură complet diferită, de exemplu, să execuți o aplicație pentru ARM pe un PC compatibil x86. În modul de virtualizare, performanța execuției codului într-un mediu izolat se apropie de cea a unui sistem hardware datorită execuției directe a instrucțiunilor pe CPU și utilizării hypervisorului Xen sau modulului KVM.

Proiectul a fost inițial creat de Fabrice Bellard cu scopul de a permite rularea fișierelor executabile Linux compilate pentru platforma x86 pe arhitecturi diferite de x86. De-a lungul anilor de dezvoltare, suportul pentru simularea completă a fost adăugat pentru 14 arhitecturi hardware, iar numărul de dispozitive hardware emulate a depășit 400. Pentru versiunea 6.0, au fost incluse peste 3300 de modificări de la 268 de dezvoltatori.

Îmbunătățiri cheie adăugate în QEMU 6.0:

  • Emulatorul controlerelor NVMe a fost adus în conformitate cu specificația NVMe 1.4 și dotat cu suport experimental pentru spații de nume zonate, multipath I/O și criptarea end-to-end a datelor pe unitate.
  • Au fost adăugate opțiuni experimentale '-machine x-remote' și '-device x-pci-proxy-dev' pentru externalizarea emulării dispozitivelor către procese externe. În acest mod, deocamdată, este suportată doar emularea adaptorului SCSI lsi53c895.
  • A fost adăugat suport experimental pentru crearea de snapshots ale conținutului RAM.
  • A fost adăugat un modul FUSE pentru exportarea dispozitivelor bloc, permițând montarea unei instantanee a stării oricărui dispozitiv bloc utilizat în sistemul gazdă. Exportul se face prin comanda QMP block-export-add sau prin opțiunea '--export' în utilitarul qemu-storage-daemon.
  • În emulatorul ARM a fost adăugat suport pentru arhitectura ARMv8.1-M 'Helium' și procesoarele Cortex-M55, precum și pentru instrucțiuni extinse ARMv8.4 TTST, SEL2 și DIT. A fost adăugat suport pentru plăcile ARM mps3-an524 și mps3-an547. De asemenea, pentru plăcile xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx și sabrelite a fost implementată emularea suplimentară a dispozitivelor.
  • Pentru ARM, în modurile de emulare la nivel de sistem și mediu utilizator, a fost implementat suportul pentru extensia ARMv8.5 MTE (MemTag, Memory Tagging Extension), care permite asocierea de etichete cu fiecare operațiune de alocare a memoriei și organizarea verificării pointerului la accesul la memorie, ceea ce trebuie să fie legat de eticheta corectă. Extensia poate fi utilizată pentru a bloca exploatarea vulnerabilităților cauzate de accesul la blocuri de memorie deja eliberate, depășiri de buffer, accesări înainte de inițializare și utilizare în afara contextului curent.
  • În emulatorul arhitecturii 68k a fost adăugat suportul pentru un nou tip de mașini emulate „virt”, care folosesc virtio pentru optimizarea performanței dispozitivelor.
  • În emulatorul arhitecturii x86 a fost adăugată capacitatea de a aplica tehnologia AMD SEV-ES (Secure Encrypted Virtualization) pentru criptarea registrelor procesorului folosite în sistemul gazdă, ceea ce face conținutul registrelor inaccesibil pentru mediul gazdă, cu excepția cazului în care sistemul gazdă oferă explicit accesul la acestea.
  • În generatorul de cod clasic TCG (Tiny Code Generator), în timpul emulării sistemelor x86, a fost implementat suportul pentru mecanismul PKS (Protection Keys Supervisor), care poate fi aplicat pentru a proteja accesul la paginile de memorie privilegiate.
  • În emulatorul arhitecturii MIPS a fost adăugat un nou tip de mașini emulate „virt” cu suport pentru procesoarele chineze Loongson-3.
  • În emulatorul arhitecturii PowerPC pentru mașinile emulate „powernv” a fost adăugat suportul pentru controlere BMC externe. Pentru mașinile emulate pseries, a fost implementată informarea despre eșecurile în cazul încercărilor de extragere la cald a memoriei și CPU-ului.
  • A fost adăugat suport pentru emularea procesoarelor Qualcomm Hexagon cu DSP.
  • În generatorul de cod clasic TCG (Tiny Code Generator) a fost implementat suportul pentru medii gazdă macOS pe sisteme cu noul chip ARM Apple M1.
  • În emulatorul arhitecturii RISC-V pentru plăcile Microchip PolarFire a fost implementat suportul pentru QSPI NOR flash.
  • În emulatorul Tricore a apărut suportul pentru noul model de plăci TriBoard, care emulează SoC Infineon TC27x.
  • În emulatorul ACPI a fost oferită posibilitatea de a desemna adaptere de rețea în sistemele gazdă cu nume care nu depind de ordinea de conectare la bus-ul PCI.
  • În virtiofs a fost adăugat suportul pentru opțiunea FUSE_KILLPRIV_V2 pentru a îmbunătăți performanța sistemelor gazdă.
  • În VNC a fost adăugat suport pentru transparența cursorului și suport pentru scalarea rezoluției ecranului în virtio-vga, bazat pe dimensiunea ferestrei.
  • În QMP (QEMU Machine Protocol) a fost adăugat suport pentru accesul paralel asincron în timpul executării sarcinilor de backup.
  • În emulatorul USB a fost adăugată funcția de a salva traficul generat în timpul utilizării dispozitivelor USB într-un fișier pcap separat pentru inspecție ulterioară în Wireshark.
  • Au fost adăugate noi comenzi QMP load-snapshot, save-snapshot și delete-snapshot pentru gestionarea snapshot-urilor qcow2.
  • În virtiofs au fost remediate vulnerabilitățile CVE-2020-35517 și CVE-2021-20263. Prima problemă permite accesul la mediu gazdă din sistemul invitat prin crearea unui fișier de dispozitiv special într-un director partajat cu mediu gazdă de către un utilizator privilegiat din sistemul invitat. A doua problemă este cauzată de o eroare în procesarea atributelor extinse în opțiunea 'xattrmap' și poate duce la ignorarea resetării permisiunilor de scriere și la creșterea privilegiilor în interiorul sistemului invitat.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster