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

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

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

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

  • Магчымасць пракіду часткі файлавай сістэмы хост-акружэнні ў гасцёўню сістэму пры дапамозе virtiofsd. Гасцявая сістэма можа прымантаваць каталог, пазначаны для экспарту на баку хост-сістэмы, што істотна спрашчае арганізацыю сумеснага доступу да каталогаў у сістэмах віртуалізацыі. У адрозненне ад ужывання сеткавых ФС, такіх як NFS і virtio-9P, virtiofs дазваляе дамагчыся прадукцыйнасці, блізкай да лакальнай файлавай сістэмы;
  • Падтрымка live-міграцыі дадзеных вонкавых працэсаў, якія выкарыстоўваюць шыну QEMU D-Bus;
  • Магчымасць выкарыстання бэкэндаў памяці для забеспячэння працы асноўнай аператыўнай памяці гасцявой сістэмы. Бэкенд задаецца пры дапамозе опцыі "-machine memory-backend";
  • Новы фільтр "compress", які можна выкарыстоўваць для стварэння сціснутых рэзервовых копій выяў;
  • Каманда "qemu-img measure" зараз можа працаваць з выявамі LUKS, а ў каманду "qemu-img convert" дададзена опцыя "-target-is-zero" для пропуску абнулення мэтавай выявы;
  • Дададзена эксперыментальная падтрымка працэсу qemu-storage-daemon, які прадстаўляе доступ да блокавага ўзроўню QEMU і камандам QMP, уключаючы выкананне работ з блокавымі прыладамі і ўбудаваны сервер NBD, без неабходнасці запуску поўнай віртуальнай машыны;
  • У эмулятар архітэктуры ARM дададзена магчымасць эмуляцыі CPU Cortex-M7 і забяспечана падтрымка поплаткаў tacoma-bmc, Netduino Plus 2 і Orangepi PC. У эмуляваныя машыны 'virt' дададзеная падтрымка прылад vTPM і virtio-iommu. Абвешчаная састарэлай магчымасць выкарыстання хост-сістэм AArch32 для запуску гасцявых акружэнняў KVM. Рэалізавана падтрымка эмуляцыі наступных магчымасцяў архітэктур:
    • ARMv8.1: HEV, VMID16, PAN, PMU
    • ARMv8.2: UAO, DCPoP, ATS1E1, TTCNP
    • ARMv8.3: RCPC, CCIDX
    • ARMv8.4: PMU, RCPC
  • У эмулятар архітэктуры HPPA дададзена падтрымка графічнай кансолі з выкарыстаннем графічнай прылады HP Artist;
  • У эмулятар архітэктуры MIPS дададзена падтрымка інструкцыі GINVT (Global Invalidation TLB);
  • У эмулятары архітэктуры PowerPC для машын 'powernv' дададзена эмуляцыя сродкаў апаратнага паскарэння KVM для запуску гасцявых сістэм
    KVM з класічным генератарам кода TCG (Tiny Code Generator). Для эмуляцыі сталай памяці дададзена падтрымка адлюстраваных у файл NVDIMM. Для машын 'pseries' прыбрана неабходнасць перазагрузкі для ўзгаднення працы кантролераў перапыненняў XIVE/XICS у рэжыме "ic-mode=dual";

  • У эмулятары архітэктуры RISC-V для поплаткаў 'virt' і 'sifive_u' рэалізаваная падтрымка тыпавых драйвераў syscon у Linux для кіравання сілкаваннем і перазагрузкай. Для платы 'virt' дададзена падтрымка Goldfish RTC. Дададзена эксперыментальная рэалізацыя пашырэнняў гіпервізара;
  • У эмулятар архітэктуры s390 дададзеная падтрымка AIS (Adapter Interrupt Suppression) пры працы ў рэжыме KVM.

Крыніца: opennet.ru

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