Vrystelling van die QEMU 5.1-emulator

Bekendgestel projek vrystelling QEMU 5.1. As 'n emulator laat QEMU jou toe om 'n program wat saamgestel is vir een hardewareplatform op 'n stelsel met 'n heeltemal ander argitektuur te laat loop, byvoorbeeld om 'n ARM-toepassing op 'n x86-versoenbare rekenaar uit te voer. In virtualisasiemodus in QEMU is die uitvoering van kode-uitvoering in 'n geΓ―soleerde omgewing naby aan die inheemse stelsel as gevolg van direkte uitvoering van instruksies op die SVE en die gebruik van die Xen-hipervisor of KVM-module.

Die projek is oorspronklik deur Fabrice Bellard geskep om Linux-uitvoerbare programme wat vir die x86-platform gebou is, op nie-x86-argitekture te laat loop. Oor die jare van ontwikkeling is volledige emulasie-ondersteuning bygevoeg vir 14 hardeware-argitekture, die aantal nagebootste hardeware-toestelle het 400 oorskry. Ter voorbereiding vir weergawe 5.1 is meer as 2500 veranderinge van 235 ontwikkelaars aangebring.

Sleutel verbeteringsbygevoeg in QEMU 5.1:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° эмуляции CPU Π½Π° Π±Π°Π·Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ AVR. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚ Arduino Duemilanove (ATmega168), Arduino Mega 2560 (ATmega2560),
    Arduino Mega (ATmega1280) ΠΈ Arduino UNO (ATmega328P).

  • Π’ эмулятор Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARM Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ горячСго ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ памяти (hot-unplug), Π° Ρ‚Π°ΠΊΠΆΠ΅ горячСго ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ памяти nvdimm для гостСвых систСм с ACPI. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ARMv8.2 TTS2UXN ΠΈ ARMv8.5 MemTag. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ‹ sonorapass-bmc.
  • Π’ эмулятор Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ MIPS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CPU Loongson 3A CPUs (R1 ΠΈ R4). ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ эмуляции инструкций FPU ΠΈ MSA.
  • Π’ эмулятор Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ RISC-V Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CPU SiFive E34 ΠΈ Ibex. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚ HiFive1 revB ΠΈ OpenTitan. Для машин Spike прСдоставлСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ CPU.
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ PowerPC появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° восстановлСния ошибок Π² гостСвых систСмах ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ FWNMI.
  • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ s390 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° KVM для Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Ρ€Π΅ΠΆΠΈΠΌ бСзопасного выполнСния).
  • Π’ эмуляторС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86 сокращСны Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π΅Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… гостСвых систСм с Windows, Ρ‡Π΅Ρ€Π΅Π· прСдоставлСниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ эмулируСмых устройств ACPI WAET (Windows ACPI Emulated Device Table). Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ускорСния HVF для macOS.
  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… устройств хранСния с логичСскими ΠΈ физичСскими Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 2MB.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² QEMU ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· keyring ядра Linux ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Β«secret-keyringΒ».
  • Для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° qcow2 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия zstd.
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ qemu-img Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая ΠΊΠΎΠΌΠ°Π½Π΄Π° β€˜bitmap’ для манипуляции постоянными Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ Π² Ρ„Π°ΠΉΠ»Π°Ρ… qcow2. Π’ qemu-img Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ LUKS (keyslot) ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности для ΠΊΠΎΠΌΠ°Π½Π΄ Β«mapΒ» (β€”start-offset, β€”max-length) ΠΈ Β«convertΒ» (β€”bitmaps), Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«measureΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²Ρ‹Π²ΠΎΠ΄ свСдСний ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ постоянных Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ Π² Ρ„Π°ΠΉΠ»Π°Ρ… qcow2.
  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ NVMe появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° постоянных областСй памяти (Persistent Memory Region), ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠΈΡ…ΡΡ Π² спСцификации NVMe 1.4.
  • Π’ virtio для гостСвых систСм c классичСским Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠ΄Π° TCG (Tiny Code Generator) Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования процСссов vhost-user, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ virtiofsd. Π’ vhost-user Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 8 слотов ΠžΠ—Π£.

Bron: opennet.ru

Voeg 'n opmerking