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

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

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

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

  • У эмулятар архітэктуры x86 дададзеная падтрымка мадэляў CPU Hygon Dhyana і Intel SnowRidge. Дададзена эмуляцыя пашырэння RDRAND (апаратны генератар псеўдавыпадковых лікаў). Дададзеныя сцягі
    md-clear і mds-no для кіравання абаронай ад нападаў МДС (Microarchitectural Data Sampling) на працэсары Intel. Дададзена магчымасць вызначэння тапалогій інтэгральных схем пры дапамозе сцяга «-smp …,dies=». Рэалізавана версіяванне для ўсіх мадэляў CPU x86;

  • Блочны драйвер SSH перакладзены з выкарыстання libssh2 на libssh;
  • У драйвер virtio-gpu (віртуальны GPU, які развіваецца ў рамках праекта Вяргілій) дададзеная падтрымка вынасу аперацый адмалёўкі 2D/3D у вонкавы працэс vhost-user (напрыклад, vhost-user-gpu);
  • У эмулятар архітэктуры ARM дададзена падтрымка пашырэння ARMv8.5-RNG для генерацыі псеўдавыпадковых лікаў. Рэалізавана падтрымка эмуляцыі FPU для чыпаў сямейства Cortex-M і вырашаны праблемы з эмуляцыяй FPU для Cortex-R5F. Прапанавана новая сістэма налады опцый зборкі, аформленая ў стылі Kconfig. Для SoC Exynos4210 дададзена падтрымка DMA-кантролераў PL330;
  • У эмулятары архітэктуры MIPS палепшана падтрымка інструкцый MSA ASE пры выкарыстанні парадку прытрымлівання байт big-endian і прыведзена ў адпаведнасць з эталонным абсталяваннем апрацоўка выпадкаў дзялення на нуль. Павялічана прадукцыйнасць эмуляцыі інструкцый MSA для цэлалікавых вылічэнняў і аперацый перастановы;
  • У эмулятары архітэктуры PowerPC з'явілася падтрымка пракіду да GPU NVIDIA V100/NVLink2 пры дапамозе VFIO. Для pseries рэалізавана паскарэнне эмуляцыі кантролера перапыненняў XIVE і дададзена падтрымка гарачага падлучэння PCI мастоў. Унесены аптымізацыі ў эмуляцыю вектарных інструкцый (Altivec/VSX);
  • У эмулятар архітэктуры RISC-V дададзеная новая мадэль абсталявання – "spike". Дададзена падтрымка ISA 1.11.0. Палепшаны 32-разрадны ABI сістэмных выклікаў, пашырана апрацоўка недапушчальных інструкцый і палепшаны ўбудаваны адладчык. Дададзена падтрымка тапалогіі CPU у device tree;
  • У эмулятар архітэктуры s390 дададзеная падтрымка эмуляцыі ўсіх вектарных інструкцый групы "Vector Facility" і дададзены дадатковыя элементы для падтрымкі сістэм gen15 (у тым ліку дададзеная падтрымка AP Queue Interruption Facility для vfio-ap). Рэалізаваная падтрымка BIOS для загрузкі з ECKD DASD, прывязанага да гасцявой сістэмы праз vfio-ccw;
  • У эмулятары архітэктуры SPARC для сістэм sun4m вырашаны праблемы з выкарыстаннем сцяга "-vga none" для OpenBIOS;
  • У эмулятары працэсараў сямейства Tensilica Xtensa рэалізаваны опцыі для MPU (memory protection unit) і эксклюзіўнага доступу;
  • У каманду "qemu-img convert" дададзена опцыя "-salvage" для адключэння аварыйнага завяршэння працы працэсу пераўтварэння выявы ў выпадку ўзнікнення памылак уводу/высновы (напрыклад, можна ўжываць для аднаўлення часткова пашкоджаных файлаў qcow2). У камандзе
    "qemu-img rebase" забяспечана праца, калі для ўваходнага файла пакуль не створаны базавы (backing) файл;

  • Дададзена магчымасць перанакіравання высновы, арганізаванай з выкарыстаннем тэхналогіі «semihosting» (дазваляе эмуляванай прыладзе выкарыстоўваць stdout, stderr і stdin для стварэння файлаў на баку хаста), у бэкэнд chardev («-semihosting-config enable=on,target=native,chardev=[ ID]»);
  • У блокавым драйверы VMDK дададзеная падтрымка субфармату seSparse у рэжыме толькі для чытання;
  • У драйверы эмуляцыі GPIO дададзена падтрымка GPIO-кантролера SiFive.

Крыніца: opennet.ru

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