Lansarea emulatorului QEMU 4.1

Introdus lansarea proiectului QEMU 4.1. Ca emulator, QEMU vă permite să rulați un program compilat pentru o platformă hardware pe un sistem cu o arhitectură complet diferită, de exemplu, să rulați o aplicație ARM pe un PC compatibil x86. În modul de virtualizare în QEMU, performanța execuției codului într-un mediu izolat este apropiată de sistemul nativ datorită execuției directe a instrucțiunilor pe CPU și utilizării hypervisorului Xen sau a modulului KVM.

Proiectul a fost creat inițial de Fabrice Bellard pentru a oferi capacitatea de a rula executabile Linux compilate pentru platforma x86 pe arhitecturi non-x86. De-a lungul anilor de dezvoltare, a fost adăugat suport pentru emulare completă pentru 14 arhitecturi hardware, numărul de dispozitive hardware emulate a depășit 400. În pregătirea versiunii 4.1, au fost făcute peste 2000 de modificări de la 276 de dezvoltatori.

Cheie îmbunătățiriadăugat în QEMU 4.1:

  • Suport pentru modelele CPU Hygon Dhyana și Intel SnowRidge a fost adăugat la emulatorul de arhitectură x86. S-a adăugat emularea extensiei RDRAND (generator hardware de numere pseudoaleatoare). S-au adăugat steaguri
    md-clear și mds-no pentru a controla protecția împotriva atacurilor MDS (Eșantionare de date microarhitecturale) pe procesoarele Intel. S-a adăugat capacitatea de a determina topologii de circuite integrate utilizând indicatorul „-smp ...,dies=". Versiunea a fost implementată pentru toate modelele de procesoare x86;

  • Driverul de bloc SSH a fost mutat de la utilizare libssh2 pe libsh;
  • Driverul virtio-gpu (GPU virtual dezvoltat ca parte a proiectului Virgil) a adăugat suport pentru mutarea operațiunilor de randare 2D/3D la un proces extern vhost-user (de exemplu, vhost-user-gpu);
  • Emulatorul arhitecturii ARM a adăugat suport pentru extensia ARMv8.5-RNG pentru generarea de numere pseudo-aleatoare. Suportul pentru emularea FPU a fost implementat pentru cipurile din familia Cortex-M și problemele cu emularea FPU pentru Cortex-R5F au fost rezolvate. A fost propus un nou sistem pentru setarea opțiunilor de construire, conceput în stilul Kconfig. Pentru SoC Exynos4210, a fost adăugat suport pentru controlerele PL330 DMA;
  • Emulatorul arhitecturii MIPS a îmbunătățit suportul pentru instrucțiunile MSA ASE atunci când se utilizează ordinea de octeți big-endian și a aliniat gestionarea divizării la zero a cazurilor cu hardware-ul de referință. Performanța emulării instrucțiunilor MSA pentru calcule întregi și operații de permutare a fost crescută;
  • Emulatorul arhitecturii PowerPC acceptă acum redirecționarea către GPU-uri NVIDIA V100/NVLink2 folosind VFIO. Pentru pseries, a fost implementată accelerarea emulării controlerului de întrerupere XIVE și a fost adăugat suport pentru conectarea la cald a punților PCI. Au fost făcute optimizări la emularea instrucțiunilor vectoriale (Altivec/VSX);
  • Un nou model hardware a fost adăugat la emulatorul de arhitectură RISC-V - „spike”. S-a adăugat suport pentru ISA 1.11.0. Apelul de sistem pe 32 de biți ABI a fost îmbunătățit, gestionarea instrucțiunilor invalide a fost îmbunătățită, iar depanatorul încorporat a fost îmbunătățit. S-a adăugat suport pentru topologia CPU în arborele dispozitivelor;
  • Emulatorul de arhitectură s390 a adăugat suport pentru emularea tuturor instrucțiunilor vectoriale ale grupului „Vector Facility” și a adăugat elemente suplimentare pentru a sprijini sistemele gen15 (inclusiv suport adăugat pentru AP Queue Interruption Facility pentru vfio-ap). Suport BIOS implementat pentru pornirea de la ECKD DASD legat de sistemul oaspete prin vfio-ccw;
  • În emulatorul de arhitectură SPARC pentru sistemele sun4m, au fost rezolvate problemele legate de utilizarea steagului „-vga none” pentru OpenBIOS;
  • Emulatorul de procesor din familia Tensilica Xtensa include opțiuni pentru MPU (unitate de protecție a memoriei) și acces exclusiv;
  • Opțiunea „-salvage” a fost adăugată la comanda „qemu-img convert” pentru a dezactiva blocarea procesului de conversie a imaginii în cazul erorilor I/O (de exemplu, poate fi folosită pentru a restaura fișierele qcow2 parțial deteriorate). Într-o echipă
    „qemu-img rebase” funcționează atunci când un fișier de rezervă nu a fost încă creat pentru fișierul de intrare;

  • S-a adăugat capacitatea de a redirecționa ieșirea organizată folosind tehnologia „semihosting” (permite dispozitivului emulat să utilizeze stdout, stderr și stdin pentru a crea fișiere pe partea gazdă) la backend-ul chardev ("-semihosting-config enable=on,target=native ,chardev=[ ID]");
  • S-a adăugat suport pentru subformatul seSparse în modul numai citire în driverul de bloc VMDK;
  • S-a adăugat suport pentru controlerul SiFive GPIO în driverul de emulare GPIO.

Sursa: opennet.ru

Adauga un comentariu