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

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

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

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

  • У эмулятары архітэктуры x86 у класічным генератары кода TCG дададзеная падтрымка інструкцый AVX, AVX2, F16C, FMA3 і VAES, а таксама праведзена аптымізацыя прадукцыйнасці, злучаная з выкарыстаннем інструкцый SSE. Для KVM дададзеная падтрымка механізму адсочвання выхаду з віртуальнай машыны ("notify vmexit"), які дазваляе абыйсці памылкі ў CPU, якія могуць прывесці да завісання.
  • У эмулятары ARM рэалізаваная падтрымка CPU Cortex-A35 і працэсарных пашырэнняў ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (апаратнае кіраванне сцягам) і E0PD (прадухіленне доступу EL0 да падзеленых карт адрасоў).
  • У эмулятары LoongArch дададзеная падтрымка fw_cfg DMA, гарачага падлучэння памяці і эмуляцыя прылад TPM (Trusted Platform Module).
  • У эмулятары архітэктуры OpenRISC рэалізавана платформа 'virt' для правядзення тэстаў прылад і выкарыстанні ў сістэмах бесперапыннай інтэграцыі. Рэалізавана падтрымка шматструменнага выканання класічнага генератара кода TCG (Tiny Code Generator).
  • У эмулятар архітэктуры RISC-V у эмуляваных машынах 'virt' рэалізавана магчымасць загрузкі прашыўкі з pflash у S-рэжыме (S-mode). Палепшана праца з device tree.
  • У эмулятары архітэктуры 390x забяспечана падтрымка пашырэння MSA5 (Message-Security-Assist Extension 5 з інструкцыяй PRNO для генерацыі псеўдавыпадковых лікаў), інструкцый KIMD/KLM (рэалізацыя SHA-512) і пашыранай інтэрпрэтацыі zPCI для гасцявых сістэм.
  • У бэкендах для працы з памяццю забяспечана папярэдняе вылучэнне памяці з улікам архітэктуры NUMA.
  • Узмоцнена праверка загалоўкаў шыфраваных блокавых прылад LUKS, дададзена магчымасць стварэння выяў LUKS у macOS.
  • У бэкендзе 9pfs, які дазваляе выкарыстоўваць сеткавую файлавую сістэму Plan 9 для доступу адной віртуальнай машыны да іншай, ажыццёўлены пераход на выкарыстанне хэша GHashTable у табліцы ідэнтыфікатараў, што ў некаторых сітуацыях прывяло да павышэння прадукцыйнасці ў 6-12 разоў.
  • Дададзены новыя netdev-бэкэнды stream і dgram.
  • У агенце для гасцявых сістэм на базе архітэктуры ARM дададзеная падтрымка FreeBSD.
  • У зборках GUI для macOS забяспечана магчымасць уключэння ў адзін выкананы файл інтэрфейсаў на базе Cocoa і SDL/GTK.
  • Выдалены ўбудаваны субмодуль "slirp", замест якога рэкамендуецца выкарыстоўваць сістэмную бібліятэку libslirp.
  • З-за адсутнасці магчымасці тэставання абвешчана састарэлай падтрымка хост-сістэм з 32-разраднымі працэсарамі MIPS, якія выкарыстоўваюць парадкам прытрымлівання байт "Big endian".

Крыніца: opennet.ru

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