Dimittis de QEMU 11.0.0 aemulo

Emissio propositi QEMU 11.0.0 exhibita est. Sicut aemulus QEMU permittit te currere programmata pro uno tribunali ferramento exarato in systemate cum architectura omnino diversa, exempli gratia, applicatione ARM currere in PC x86-compatible. In modo virtualisation in QEMU, exsecutio codicis exsecutio in ambitu remoto prope ferramenta systematis ob directam executionem instructionum in CPU et usu Xen hypervisoris vel KVM moduli in Linux, vel moduli NVMM in NetBSD.

Projectum a Fabrice Bellard primum creatum est ad providendum facultatem currere Linux executables pro x86 suggestu in architecturas non-x86 compilatas. Per annos evolutionis subsidium ad plenam aemulationem addita est pro architecturae ferramentis XIV, numerus ferramentorum machinarum aemulatorum 14 excessit. In versione 400 parandis, plus quam 11.0.0 mutationes ab 2500 tincidunt factae sunt.

Clavis emendationes ad QEMU 11.0 additae:

  • Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 32-разрядных хост-систСм, которая Π±Ρ‹Π»Π° объявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ Π² Π°ΠΏΡ€Π΅Π»Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° Π² QEMU 10.0. Π’ Π΄Π΅ΠΊΠ°Π±Ρ€ΡŒΡΠΊΠΎΠΌ выпускС 10.2 Π² Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° TCG (Tiny Code Generator) Π±Ρ‹Π»Π° ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ mips32 ΠΈ ppc32, Π° Π² выпускС QEMU 11.0 ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ i386, arm, ppc ΠΈ riscv32, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° чистка ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ ΠΈ сборочной систСмы ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° 32-разрядных хостах.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Β«nitroΒ» (Β«-accel nitorΒ») ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ эмулируСмых систСм Β«nitroΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π² QEMU ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Π½ΠΊΠ»Π°Π²Ρ‹ Π½Π° Π±Π°Π·Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… вычислСний AWS Nitro Enclave, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для локального тСстирования Π² QEMU ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Nitro Enclave. Π’ AWS EC2 тСхнология Nitro Enclave позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Π½ΠΊΠ»Π°Π²Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, выдСляя ΠΈΠΌ Ρ‡Π°ΡΡ‚ΡŒ своих рСсурсов.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ускоритСлСй Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ MSHV (Microsoft Hypervisor) ΠΈ WHPX (Microsoft Windows Hypervisor Platform Extensions).
  • ΠŸΡ€ΠΈ использовании Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° KVM (Β«-accel kvmΒ») прСдоставлСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Intel CET (Control-flow Enforcement Technology) для примСнСния Π² virtualis machinis Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ эксплоитов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (ROP β€” Return-Oriented Programming). Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… virtualis machinis, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ памяти Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ AMD SEV-SNP (Secure Encrypted Virtualization β€” Secure Nested Paging) ΠΈ Intel TDX (Trust Domain Extensions).
  • Π’ устройство VirtIO-GPU, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ GPU, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выставлСния ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ экрана для Ρ€Π°Π·Π½Ρ‹Ρ… устройств Π²Ρ‹Π²ΠΎΠ΄Π°.
  • Π’ VirtIO-GPU Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° контСкстов DRM (Direct Rendering Manager native context), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ GPU ΠΈΠ· гостСвой систСмы Π·Π° счёт прямой ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ хостовый GPU. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° контСкстов DRM Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈ использовании Π½ΠΎΠ²ΠΎΠ³ΠΎ устройства virtio-gpu-gl с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ Β«drm_native_context=onΒ». Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ контСкстов Virgl ΠΈ Venus, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ API OpenGL ΠΈ Vulkan, контСкст DRM Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ UAPI ядра Linux.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования языка C++ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΊ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΊΠΎΠ΄Π° TCG (Tiny Code Generator).
  • Π’ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ NFS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сборки с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ libnfs 6.
  • Π’ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ curl Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«force-rangeΒ» для ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ использования HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«RangeΒ» ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ запросом с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ HEAD.
  • Π’ Π±Π»ΠΎΡ‡Π½ΠΎΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ FUSE ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ экспорта Π² синхронном Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠΈΡ… ΠΊ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ запуска Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π΄ΠΎ окончания ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… FUSE-запросов. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° (iothread) ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ экспорта Π² FUSE.
  • Π’ эмулятор Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CPU Intel Diamond Rapids (Β«Xeon 7Β»).
  • Π’ эмулятор Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARM Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° процСссорных Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ FEAT_ASID2 ΠΈ FEAT_E2H0. Π’ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° TCG Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° эмуляция Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ SME (Scalable Matrix Extension).
  • Π’ эмулятор Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ HPPA Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° эмуляции 64-разрядных CPU c 40- ΠΈ 44-разрядным адрСсным пространством. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ SeaBIOS-hppa 24 обСспСчСна инициализация PCI-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Astro, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PCI-Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π° 64-рядных систСмах.
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ LoongArch появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ PMU (Performance Monitoring Unit) ΠΏΡ€ΠΈ использовании Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° KVM. Π’ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° TCG Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° эмуляция Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ LA v1.1, sc.q ΠΈ llacq/screl, Π° Ρ‚Π°ΠΊΠΆΠ΅ инструкций FRECIP ΠΈ DRECIP для вычислСния ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.
  • Π’ эмулятор Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ PowerPC Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡΠ½Π°ΠΏΡ€ΡˆΠΎΡ‚ΠΎΠ².
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ RISC-V Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CPU MIPS P8700 ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ Zilsd, Zclsd, ZALASR ΠΈ Smpmpmt.
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ s390 появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с устройств virtio-blk-pci ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° эмуляции инструкции Β«DIVIDE TO INTEGERΒ».
  • ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΎ исправлСниС, Π² 50-80 Ρ€Π°Π· ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ fdmon (file descriptor monitoring) Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Β«aio=io_uringΒ» ΠΈ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ систСмы Π² состоянии простоя (idle).

    Source: opennet.ru