Lansarea emulatorului QEMU 4.0

Format lansarea proiectului QEMU 4.0. 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.0, au fost făcute peste 3100 de modificări de la 220 de dezvoltatori.

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

  • Suport pentru extensiile de instrucțiuni ARMv8+ a fost adăugat la emulatorul arhitecturii ARM: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT și BTI. S-a adăugat suport pentru emularea plăcilor Musca și MPS2. Emulare îmbunătățită ARM PMU (Unitate de gestionare a energiei). Spre platformă virtute a adăugat capacitatea de a utiliza mai mult de 255 GB de RAM și suport pentru imagini u-boot cu tipul „noload”;

  • În emulatorul de arhitectură x86 din motorul de accelerare a virtualizării HAX (Intel Hardware Accelerated Execution) a adăugat suport pentru gazdele compatibile cu POSIX, cum ar fi Linux și NetBSD (anterior doar platforma Darwin era acceptată). În emulatorul de chipset Q35 (ICH9) pentru porturile principale PCIe, viteza maximă (16GT/s) și numărul de linii de conexiune (x32) definite în specificația PCIe 4.0 pot fi acum declarate opțional (pentru a asigura compatibilitatea, 2.5GT este instalat implicit pentru tipuri mai vechi de mașini QEMU /s și x1). Este posibil să încărcați imagini Xen PVH cu opțiunea „-kernel”;
  • Emulatorul arhitecturii MIPS a adăugat suport pentru emularea cu mai multe fire folosind generatorul de cod clasic TCG (Tiny Code Generator). De asemenea, a adăugat suport pentru emularea CPU I7200 (nanoMIPS32 ISA) și I6500 (MIPS64R6 ISA), capacitatea de a procesa cereri de tip CPU folosind QMP (QEMU Management Protocol), a adăugat suport pentru registrele de configurare SAARI și SAAR. Performanță îmbunătățită a mașinilor virtuale cu tipul Fulong 2E. Implementarea actualizată a Unității de Comunicare Interthread;
  • În emulatorul de arhitectură PowerPC, a fost adăugat suport pentru emularea controlerului de întrerupere XIVE, suportul pentru POWER9 a fost extins, iar pentru seria P, a fost adăugată capacitatea de a conecta la cald punți gazdă PCI (PHB, punte gazdă PCI). Protecția împotriva atacurilor Spectre și Meltdown este activată implicit;
  • Suport pentru emularea PCI și USB a fost adăugat la emulatorul de arhitectură RISC-V. Serverul de depanare încorporat (gdbserver) acceptă acum specificarea listelor de registre în fișierele XML. S-a adăugat suport pentru câmpurile mstatus TSR, TW și TVM;
  • Emulatorul de arhitectură s390 a adăugat suport pentru modelul CPU z14 GA 2, precum și suport pentru emularea extensiilor de instrucțiuni pentru operațiuni în virgulă mobilă și vectorială. Capacitatea de a conecta dispozitivele la cald a fost adăugată la vfio-ap;
  • Emulatorul de procesor al familiei Tensilica Xtensa a îmbunătățit suportul SMP pentru Linux și a adăugat suport pentru FLIX (extensia de instrucțiuni de lungime flexibilă);
  • Opțiunea „-display spice-app” a fost adăugată la interfața grafică pentru a configura și lansa o versiune a clientului de acces la distanță Spice cu un design similar cu interfața QEMU GTK;
  • S-a adăugat suport pentru controlul accesului folosind opțiunile tls-authz/sasl-authz la implementarea serverului VNC;
  • QMP (QEMU Management Protocol) a adăugat suport pentru execuția comenzilor centralizată/externă (în afara benzii) și a implementat comenzi suplimentare pentru lucrul cu dispozitive bloc;
  • O implementare a interfeței EDID a fost adăugată la VFIO pentru mdev-uri acceptate (Intel vGPU), permițându-vă să schimbați rezoluția ecranului folosind opțiunile xres și yres;
  • Un nou dispozitiv „xen-disk” a fost adăugat pentru Xen, care poate crea independent un backend de disc pentru Xen PV (fără a accesa xenstore). Performanța backend-ului de disc Xen PV a fost crescută și a fost adăugată capacitatea de a schimba dimensiunea discului;
  • Capacitățile de diagnosticare și urmărire au fost extinse în dispozitivele cu blocuri de rețea, iar compatibilitatea clientului cu implementările problematice ale serverului NBD a fost îmbunătățită. S-au adăugat opțiunile „--bitmap”, „--list” și „--tls-authz” la qemu-nbd;
  • S-a adăugat suport pentru modul PCI IDE la IDE emulat/prin dispozitiv;
  • S-a adăugat suport pentru utilizarea algoritmului lzfse pentru a comprima imaginile dmg. Pentru formatul qcow2, a fost adăugat suport pentru conectarea fișierelor de date externe. Operațiunile de despachetare qcow2 sunt mutate într-un fir separat. S-a adăugat suport pentru operațiunea „blockdev-create” în imaginile vmdk;
  • Dispozitivul bloc virtio-blk a adăugat suport pentru operațiuni DISCARD (informare despre eliberarea blocurilor) și WRITE_ZEROES (reducerea la zero a unei game de blocuri logice);
  • Dispozitivul pvrdma acceptă serviciile RDMA Management Datagram (MAD);
  • Trimis modificări, încălcând compatibilitatea inversă. De exemplu, în loc de opțiunea „handle” din „-fsdev” și „-virtfs”, ar trebui să utilizați opțiunile „local” sau „proxy”. Opțiunile „-virtioconsole” (înlocuit cu „-device virtconsole”), „-no-frame”, „-clock”, „-enable-hax” (înlocuit cu „-accel hax”) au fost eliminate. Dispozitivul eliminat „ivshmem” (ar trebui să folosească „ivshmem-doorbell” și „ivshmem-plain”). Suportul pentru construirea cu SDL1.2 a fost întrerupt (trebuie să utilizați SDL2).

Sursa: opennet.ru

Adauga un comentariu