Выпуск эмулятара QEMU 4.0

Сфарміраваны рэліз праекта QEMU 4.0. У якасці эмулятара QEMU дазваляе запусціць праграму, сабраную для адной апаратнай платформы, на сістэме з зусім іншай архітэктурай, напрыклад, выканаць прыкладанне для ARM на x86-сумяшчальным ПК. У рэжыме віртуалізацыі ў QEMU прадукцыйнасць выканання кода ў ізаляваным асяроддзі блізкая да натыўнай сістэмы за кошт прамога выканання інструкцый на CPU і задзейнічанні гіпервізара Xen ці модуля KVM.

Першапачаткова праект быў створаны Фабрысам Беларам (Fabrice Bellard) з мэтай забеспячэння магчымасці запуску сабраных для платформы x86 выкананых файлаў Linux на архітэктурах, адрозных ад x86. За гады распрацоўкі была дададзена падтрымка поўнай эмуляцыі для 14 апаратных архітэктур, колькасць эмуляваных апаратных прылад перавысіла 400. Пры падрыхтоўцы версіі 4.0 унесена больш за 3100 змяненняў ад 220 распрацоўшчыкаў.

ключавыя паляпшэння, дададзеныя ў QEMU 4.0:

  • У эмулятар архітэктуры ARM дададзена падтрымка пашырэнняў інструкцый ARMv8+: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT і BTI. Дададзена падтрымка эмуляцыі поплаткаў "Musca" і "MPS2". Палепшана эмуляцыя ARM PMU (Power Management Unit). У платформу вір дададзена магчымасць выкарыстання больш за 255 Гб АЗП і падтрымка выяў u-boot з тыпам «noload»;

  • У эмулятары архітэктуры x86 у рухавічку паскарэння віртуалізацыі ХАКС (Intel Hardware Accelerated Execution) дададзеная падтрымка POSIX-сумяшчальных хастоў, такіх як Linux і NetBSD (раней падтрымлівалася толькі платформа Darwin). У эмулятары чыпсэта Q35 (ICH9) для асноўных партоў PCIe апцыянальна цяпер можа быць заяўлена максімальная хуткасць (16GT/s) і лік ліній злучэння (x32), вызначаных у спецыфікацыі PCIe 4.0 (для забеспячэння сумяшчальнасці па змаўчанні для старых тыпаў машын QEMU усталёўваецца 2.5GT / s і x1). Забяспечана магчымасць загрузкі выяў Xen PVH з опцыяй "-kernel";
  • У эмулятар архітэктуры MIPS дададзеная падтрымка шматструменнай эмуляцыі з выкарыстаннем класічнага генератара кода TCG (Tiny Code Generator). Таксама дададзена падтрымка эмуляцыі CPU I7200 (nanoMIPS32 ISA) і I6500 (MIPS64R6 ISA), магчымасць апрацоўкі запытаў тыпу CPU з выкарыстаннем пратаколу QMP (QEMU Management Protocol), дададзена падтрымка канфігурацыйных рэгістраў SAARI і SAAR. Палепшана праца віртуальных машын з тыпам Fulong 2E. Абноўлена рэалізацыя Interthread Communication Unit;
  • У эмулятары архітэктуры PowerPC дададзеная падтрымка эмуляцыі кантролера перапыненняў XIVE, пашырана падтрымка POWER9, для P series дададзена магчымасць гарачага падлучэння галоўных мастоў PCI (PHB, PCI host bridge). Уключаная па змаўчанні абарона ад нападаў Spectre і Meltdown;
  • У эмулятар архітэктуры RISC-V дададзеная падтрымка эмлуляцыі PCI і USB. Ва ўбудаваным серверы адладкі (gdbserver) рэалізавана падтрымка задання спісаў рэгістраў у файлах XML. Дададзена падтрымка mstatus-палёў TSR, TW і TVM;
  • У эмулятар архітэктуры s390 дададзеная падтрымка мадэлі CPU z14 GA 2, а таксама падтрымка эмуляцыі пашырэнняў інструкцый для вылічэнняў з якая плавае коскі і вектарнымі аперацыямі. У vfio-ap дададзена магчымасць гарачага падлучэння прылад;
  • У эмулятары працэсараў сямейства Tensilica Xtensa палепшана падтрымка SMP для Linux і дададзена падтрымка пашырэння FLIX (Flexible length instructions extension);
  • У графічны інтэрфейс дададзена опцыя '-display spice-app' для налады і запуску варыянту кліента выдаленага доступу Spice з афармленнем, падобным на GTK-інтэрфейс QEMU;
  • У рэалізацыю VNC-сервера дададзена падтрымка кіравання доступам пры дапамозе опцый tls-authz/sasl-authz;
  • У QMP (QEMU Management Protocol) дададзена падтрымка цэнтралізаванага/вонкавага (Out-of-band) выканання каманд і рэалізаваны дадатковыя каманды для працы з блокавымі прыладамі;
  • У VFIO дададзена рэалізацыя інтэрфейсу EDID для падтрымоўваных mdev (Intel vGPU), якая дазваляе змяняць дазвол экрана, выкарыстоўваючы опцыі xres і yres;
  • Для Xen дададзена новая прылада 'xen-disk', якое т самастойна можа стварыць дыскавы бэкэнд для Xen PV (без звароту да xenstore). Павялічана прадукцыйнасць дыскавага бэкенда Xen PV і дададзена магчымасць змены памеру дыска;
  • У сеткавых блокавых прыладах пашыраны магчымасці дыягностыкі і трасіроўкі, палепшана сумяшчальнасць кліента з праблемнымі рэалізацыямі сервера NBD. У qemu-nbd дададзены опцыі "-bitmap", "-list" і "-tls-authz";
  • У эмуляваную прыладу IDE/via дададзеная падтрымка рэжыму PCI IDE ;
  • Дададзена падтрымка выкарыстання алгарытму lzfse для сціску выяў dmg. Для фармату qcow2 дададзена падтрымка падлучэння вонкавых файлаў з дадзенымі. Аперацыі распакавання qcow2 вынесены ў асобны струмень. У выявах vmdk дададзеная падтрымка аперацыі «blockdev-create»;
  • У блокавую прыладу virtio-blk дададзеная падтрымка аперацый DISCARD (інфармаванне аб вызваленні блокаў) і WRITE_ZEROES (абнуленне дыяпазону лагічных блокаў);
  • У прыладзе pvrdma рэалізавана падтрымка RDMA Management Datagram services (MAD);
  • Унесены змены, якія парушаюць зваротную сумяшчальнасць. Напрыклад, замест опцыі "handle" у "-fsdev" і "-virtfs" варта выкарыстоўваць опцыі local" ці "proxy". Выдалены опцыі "-virtioconsole" (заменена на "-device virtconsole"), "-no-frame", "-clock", "-enable-hax" (заменена на "-accel hax"). Выдалена прылада "ivshmem" (варта выкарыстоўваць "ivshmem-doorbell" іоі "ivshmem-plain"). Спынена падтрымка зборкі з SDL1.2 (трэба выкарыстоўваць SDL2).

Крыніца: opennet.ru

Дадаць каментар