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

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

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

Ключавыя паляпшэнні, дададзеныя ў QEMU 7.1:

  • На платформе Linux рэалізавана опцыя zero-copy-send, якая дазваляе арганізаваць перадачу старонак памяці пры live-міграцыі без прамежкавай буферызацыі.
  • У QMP (QEMU Machine Protocol) дададзена магчымасць выкарыстання каманды block-export-add для экспарту выяў NBD з дадзеным аб старонках у стане "dirty". Таксама дададзены новыя каманды 'query-stats' і 'query-stats-schema' для запыту статыстыкі з розных падсістэм QEMU.
  • У агенце для гасцявых сістэм палепшана падтрымка платформы Solaris і дададзены новыя каманды 'guest-get-diskstats' і 'guest-get-cpustats' для адлюстравання стану дыскаў і CPU. У каманду 'guest-get-disks' дададзена выснова інфармацыі з NVMe SMART, а ў каманду 'guest-get-fsinfo' вывад дадзеных аб тыпе шыны NVMe.
  • Дададзены новы эмулятар LoongArch з падтрымкай 64-разраднага варыянту архітэктуры набору каманд LoongArch (LA64). Эмулятарам падтрымліваюцца працэсары Loongson 3 5000 і паўночныя масты Loongson 7A1000.
  • У эмулятары ARM рэалізаваны новыя тыпы эмуляваных машын: Aspeed AST1030 SoC, Qaulcomm і AST2600 / AST1030 (fby35). Дададзена падтрымка эмуляцыі CPU Cortex-A76 і Neoverse-N1, а таксама працэсарных пашырэнняў SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) і каманд для блакавання ўцечак з унутранага кэша падчас спекулятыўнага выканання інструкцый на CPU. Для машын 'virt' рэалізавана эмуляцыя кантролера перапыненняў GICv4.
  • У эмулятары архітэктуры x86 для KVM дададзеная падтрымка віртуалізацыі механізму трасіроўкі LBR (Last Branch Record).
  • У эмулятары архітэктуры HPPA прапанавана новая прашыўка на базе SeaBIOS v6, якая падтрымлівае выкарыстанне клавіятуры PS/2 у загрузным меню. Палепшана эмуляцыя паслядоўнага порта. Дададзены дадатковыя кансольныя шрыфты STI.
  • У эмулятары архітэктуры MIPS для поплаткаў Nios2 (-machine 10m50-ghrd) рэалізаваная эмуляцыя вектарнага кантролера перапынення (Vectored Interrupt Controller) і ценявога набору рэгістраў. Палепшана апрацоўка выключэнняў.
  • У эмулятары архітэктуры OpenRISC для машыны 'or1k-sim' дададзена магчымасць выкарыстання да 4 UART-прылад 16550A.
  • У эмулятар архітэктуры RISC-V дададзеная падтрымка новых пашырэнняў набору каманд (ISA), вызначаных у спецыфікацыі 1.12.0, а таксама дададзеная падтрымка пашырэння Sdtrig і палепшана падтрымка вектарных інструкцый. Пашыраны магчымасці для адладкі. У эмуляваную машыну 'virt' дададзеная падтрымка TPM (Trusted Platform Module), а ў машыну 'OpenTitan' - падтрымка Ibex SPI.
  • У эмулятары архітэктуры 390x забяспечана падтрымка пашырэнняў VEF 2 (Vector-Enhancements Facility 2). У s390-ccw BIOS рэалізавана магчымасць загрузкі з дыскаў, якія маюць памер сектара, выдатны ад 512 байт.
  • У эмулятар архітэктуры Xtensa дададзеная падтрымка ядраў lx106 і аб'ектных кодаў для тэставання кэша.

Крыніца: opennet.ru

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