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

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Ρ€Π΅Π»ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° QEMU 7.0. Π’ качСствС эмулятора QEMU позволяСт Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡΠΎΠ±Ρ€Π°Π½Π½ΡƒΡŽ для ΠΎΠ΄Π½ΠΎΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π° систСмС с ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΈΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ARM Π½Π° x86-совмСстимом ПК. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² QEMU ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния ΠΊΠΎΠ΄Π° Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ систСмС Π·Π° счёт прямого выполнСния инструкций Π½Π° CPU ΠΈ задСйствования Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° Xen ΠΈΠ»ΠΈ модуля KVM.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» создан Ѐабрисом Π‘Π΅Π»Π»Π°Ρ€ΠΎΠΌ (Fabrice Bellard) с Ρ†Π΅Π»ΡŒΡŽ обСспСчСния возмоТности запуска собранных для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ x86 исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Linux Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ…, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ x86. Π—Π° Π³ΠΎΠ΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΠΉ эмуляции для 14 Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, число эмулируСмых Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… устройств прСвысило 400. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ вСрсии 7.0 внСсСно Π±ΠΎΠ»Π΅Π΅ 2500 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡ‚ 225 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² QEMU 7.0:

  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π°Π±ΠΎΡ€Π° инструкций Intel AMX (Advanced Matrix Extensions), Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² сСрвСрных процСссорах Intel Xeon Scalable. AMX ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ настраиваСмыС рСгистры TMM «TILE» ΠΈ инструкции для манипуляции с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² этих рСгистрах, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ TMUL (Tile matrix MULtiply) для умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Турналирования событий ACPI ΠΎΡ‚ гостСвой систСмы Ρ‡Π΅Ρ€Π΅Π· интСрфСйс ACPI ERST.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ virtiofs, примСняСмом для проброса части Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы хост-окруТСния Π² Π³ΠΎΡΡ‚Π΅Π²ΡƒΡŽ систСму, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠΊ бСзопасности (security label). УстранСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ CVE-2022-0358, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ свои ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π² систСмС Ρ‡Π΅Ρ€Π΅Π· созданиС исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Π² пробрасываСмых Ρ‡Π΅Ρ€Π΅Π· virtiofs ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΈ снабТённых Ρ„Π»Π°Π³ΠΎΠΌ SGID.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования находящихся Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… систСмных ΠΎΠ±Ρ€Π°Π·ΠΎΠ² (создаётся ΡΠ½Π°ΠΏΡˆΠΎΡ‚, послС Ρ‡Π΅Π³ΠΎ для Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ состояния ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π° примСняСтся Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ copy-before-write (CBW), ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· областСй, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ гостСвая систСма выполняСт запись). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ qcow2. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ доступа ΠΊ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρƒ с бэкапом Π½Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства snapshot-access. Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° CBW, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΠ· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹.
  • Π’ эмуляторС ARM для машин ‘virt’ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° virtio-mem-pci, опрСдСлСния Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ CPU для гостСвой систСмы ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ PAuth ΠΏΡ€ΠΈ использовании Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° KVM с ускоритСлСм hvf. Π’ эмуляторС ΠΏΠ»Π°Ρ‚ ‘xlnx-versal-virt’ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PMC SLCR ΠΈ эмуляции ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Flash-памяти OSPI. Для эмулируСмых машин ‘xlnx-zynqmp’ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ управлСния CRF ΠΈ APU. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° эмуляция Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ FEAT_LVA2, FEAT_LVA (Large Virtual Address space) ΠΈ FEAT_LPA (Large Physical Address space).
  • Π’ классичСском Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° TCG (Tiny Code Generator) ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° хостов с CPU ARMv4 ΠΈ ARMv5, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отсутствуСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅Π²Ρ‹Ρ€Π°Π²Π½Π΅Π½Π½ΠΎΠ³ΠΎ доступа ΠΊ памяти ΠΈ нСдостаточно ΠžΠ—Π£ для выполнСния QEMU.
  • Π’ эмулятор Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ RISC-V Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° KVM ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Vector 1.0, Π° Ρ‚Π°ΠΊΠΆΠ΅ инструкции Zve64f, Zve32f, Zfhmin, Zfh, zfinx, zdinx ΠΈ zhinx{min}. Для эмулируСмых машин ‘spike’ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² OpenSBI (RISC-V Supervisor Binary Interface). Для эмулируСмых машин ‘virt’ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π΄ΠΎ 32 процСссорных ядСр ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° AIA.
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ HPPA прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π΄ΠΎ 16 vCPU ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ графичСский Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ HP-UX VDE/CDE. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ измСнСния порядка Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для SCSI-устройств.
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ OpenRISC для ΠΏΠ»Π°Ρ‚ ‘sim’ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° использования Π΄ΠΎ 4 ядСр CPU, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ внСшнСго ΠΎΠ±Ρ€Π°Π·Π° initrd ΠΈ автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ device tree для Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ядра.
  • Π’ эмулятор Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ PowerPC для эмулируСмых машин ‘pseries’ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска гостСвых систСм ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° KVM. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° устройства spapr-nvdimm. Для эмулируСмых машин ‘powernv’ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ XIVE2 ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² PHB5, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° XIVE ΠΈ PHB 3/4.
  • Π’ эмулятор Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ s390x Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ z15 (Miscellaneous-Instruction-Extensions Facility 3).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ