ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ эмулятор QEMU 10.0.0

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

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

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

  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ virtio-scsi, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ SCSI-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ (SCSI Host Bus Adapter) для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ систСмы ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ (multiqueue), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ для Ρ€Π°Π·Π½Ρ‹Ρ… Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств для обСспСчСния ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ доступа Π½Π° многоядСрных систСмах (Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ накопитСля ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°). По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства (virtio-blk) Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ SCSI-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отстаёт ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 28 дисков.
  • Π’ VFIO (Virtual Function I/O) ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° проброса IGD (Integrated Graphics Device) для ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… GPU, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² 11 (Rocket Lake) ΠΈ 12 (Alder Lake) поколСниях процСссоров Intel. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° старых GPU ATI (x550). Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° базовая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PCI PM (Power Management).
  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π° докумСнтация ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ QMP (QEMU Machine Protocol), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΌΡƒ прилоТСниям ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ QEMU.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Live-ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Β«cpr-transferΒ» (CheckPoint and Restart), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π³ΠΎΡΡ‚Π΅Π²ΡƒΡŽ систСму Π² Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр QEMU, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ хостС. Π Π΅ΠΆΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ врСмя приостановки Π·Π° счёт Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ гостСвой систСмы отраТаСтся Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ адрСсноС пространство Π½ΠΎΠ²ΠΎΠ³ΠΎ QEMU Π±Π΅Π· копирования содСрТимого.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ графичСскиС устройства β€˜apple-gfx-pci’ ΠΈ β€˜apple-gfx-mmio’, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ParavirtualizedGraphics, прСдоставляСмый Π² macOS для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ускорСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π² гостСвых систСмах. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования Π½Π° устройствах x86-64, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” ARM64.
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ процСссоров Intel Xeon Clearwater Forest ΠΈ Sierra Forest v2. УскорСна эмуляция инструкций для манипуляции строковыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARM Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚ NPCM8445 Evaluation ΠΈ i.MX 8M Plus EVK. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° эмуляция Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ FEAT_AFP, FEAT_RPRES ΠΈ FEAT_XS, Π° Ρ‚Π°ΠΊΠΆΠ΅ физичСских ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² EL2. ОбъявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CPU Arm PXA2xx ΠΈ эмуляция инструкций iwMMXt.
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ RISC-V Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° эмуляция ΠΏΠ»Π°Ρ‚ Microblaze V, CPU Ascalon ΠΈ CPU RV64 Xiangshan Nanhu. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ β€˜svukte’, β€˜ssstateen’, β€˜smrnmi’, β€˜smdbltrp’/’ssdbltrp’, β€˜supm’, β€˜sspm’, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ‚Π΅Π³ΠΎΠ² трансляции IOMMU ΠΈ устройств riscv-iommu-sys.
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ HPPA обСспСчСна эмуляция ΠΏΠ»Π°Ρ‚ Diva GSP BMC. Π”ΠΎ вСрсии 18 ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° SeaBIOS-hppa. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ трансляции. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ ΠΊΠΎΠ΄ для сброса Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ CPU. На 64-разрядных систСмах обСспСчСна эмуляция ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ памяти Π΄ΠΎ 256 Π“Π‘.
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ LoongArch появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° горячСго ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ CPU. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ IPI (inter-processor interrupt). ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ отслСТиваниС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания прСдоставлСния рСсурсов ΠΎΡ‚ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° KVM. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ (extioi).
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ s390x Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 17 поколСния CPU мэйнфрСймов ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° virtio-mem. Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ взаимодСйствия с PCI-устройствами Π² ΠΎΠ±Ρ…ΠΎΠ΄ IOMMU.

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

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