ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½Π° Π΅ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° QEMU 6.1. ΠΠ°ΡΠΎ Π΅ΠΌΡΠ»Π°ΡΠΎΡ QEMU Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΡΡΠ·Π΄Π°Π΄Π΅Π½Π° Π·Π° Π΅Π΄Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ARM ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° x86-ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΡΡΡΡ. Π ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π² QEMU ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π° ΡΡΠ΅Π΄Π° Π΅ Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΡΠ°Π΄ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Xen Ρ ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡ ΠΈΠ»ΠΈ KVM ΠΌΠΎΠ΄ΡΠ».
ΠΡΠΎΠ΅ΠΊΡΡΡ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ Π€Π°Π±ΡΠΈΡ ΠΠ΅Π»Π°ΡΠ΄, Π·Π° Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Linux, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° x86 Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡ x86. ΠΡΠ΅Π· Π³ΠΎΠ΄ΠΈΠ½ΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠ»Π½Π° Π΅ΠΌΡΠ»Π°ΡΠΈΡ Π·Π° 14 Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ, Π±ΡΠΎΡΡ Π½Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½ΠΈΡΠ΅ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π°Π΄Ρ Π²ΡΡΠ»ΠΈ 400. ΠΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° Π²Π΅ΡΡΠΈΡ 6.1 Π±ΡΡ Π° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 3000 ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΎΡ 221 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ.
ΠΠ»ΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π² QEMU 6.1:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° "blockdev-reopen" ΠΊΡΠΌ QMP (QEMU Machine Protocol) Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° Π²Π΅ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΎ Π±Π»ΠΎΠΊΠΎΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ.
- Gnutls ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ΅Π½ ΠΊΡΠΈΠΏΡΠΎ Π΄ΡΠ°ΠΉΠ²Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ΅Π²Π°ΡΠ²Π° Π΄ΡΡΠ³ΠΈΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠ°Π·ΠΈΡΠ°Π½ΠΈΡΡ Π½Π° libgcrypt Π΄ΡΠ°ΠΉΠ²Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, Π±Π΅ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ Π² ΡΠ΅Π΄ΠΈΡΠΈΡΠ΅ Π½Π° ΠΎΠΏΡΠΈΠΈΡΠ΅, Π° Π±Π°Π·ΠΈΡΠ°Π½ΠΈΡΡ Π½Π° nettle Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΅ ΠΎΡΡΠ°Π²Π΅Π½ ΠΊΠ°ΡΠΎ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΎΠΏΡΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΏΡΠΈ ΠΎΡΡΡΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° GnuTLS ΠΈ Libgcrypt.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° PMBus ΠΈ I2C ΠΌΡΠ»ΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡΠΈ (pca2, pca9546) ΠΊΡΠΌ I9548C Π΅ΠΌΡΠ»Π°ΡΠΎΡΠ°.
- ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΠΊΠΈ ΠΊΡΠΌ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° ΠΊΠΎΠ΄ TCG (Tiny Code Generator) Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π°. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ execlog (ΠΆΡΡΠ½Π°Π» Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅) ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ΅ΡΠ° (ΡΠΈΠΌΡΠ»Π°ΡΠΈΡ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° L1 ΠΊΠ΅ΡΠ° Π² ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°).
- ARM Π΅ΠΌΡΠ»Π°ΡΠΎΡΡΡ Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠ»Π°ΡΠΊΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Aspeed (rainier-bmc, quanta-q7l1), npcm7xx (quanta-gbs-bmc) ΠΈ Cortex-M3 (stm32vldiscovery) ΡΠΈΠΏΠΎΠ²Π΅. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² Aspeed ΡΠΈΠΏΠΎΠ²Π΅. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SVE2 (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ bfloat16), ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π·Π° ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ°ΡΡΠΈΡΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠΎΠΌΠΈΠ²Π°Π½Π΅ Π½Π° Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π΅Π½ Π±ΡΡΠ΅Ρ Π·Π° ΡΡΠ°Π½ΡΠ»Π°ΡΠΈΡ (TLB).
- Π Π΅ΠΌΡΠ»Π°ΡΠΎΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° PowerPC Π·Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΎΡ ΡΠ΅ΡΠΈΡ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈ ΠΏΡΠΈ Π³ΠΎΡΠ΅ΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π² Π½ΠΎΠ²ΠΈ ΡΡΠ΅Π΄ΠΈ Π·Π° Π³ΠΎΡΡΠΈ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° Π±ΡΠΎΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ ΠΈ Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° Π΅ΠΌΡΠ»Π°ΡΠΈΡ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° POWER10 ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ . ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠ»Π°ΡΠΊΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Genesi/bPlan Pegasos II (pegasos2) ΡΠΈΠΏΠΎΠ²Π΅.
- ΠΠΌΡΠ»Π°ΡΠΎΡΡΡ RISC-V ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° OpenTitan ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡ GPU virtio-vga (Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° virgl).
- ΠΠΌΡΠ»Π°ΡΠΎΡΡΡ s390 ΠΈΠΌΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° 16-ΡΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ CPU ΠΈ Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ.
- ΠΡΠΌ x86 Π΅ΠΌΡΠ»Π°ΡΠΎΡΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ CPU Π½Π° Intel (Skylake-Client-v4, Skylake-Server-v5, Cascadelake-Server-v5, Cooperlake-v2, Icelake-Client-v3, Icelake-Server-v5, Denverton- v3, Snowridge- v3, Dhyana-v2), ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° XSAVES. ΠΠΌΡΠ»Π°ΡΠΎΡΡΡ Π½Π° ΡΠΈΠΏΡΠ΅Ρ Q35 (ICH9) ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π³ΠΎΡΠ΅ΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° PCI ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ΠΌΡΠ»Π°ΡΠΈΡ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² AMD ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ bus-lock-ratelimit Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΠ½Π° ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π³ΠΎΡΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΊΠ°ΡΠΎ ΡΡΠΊΠΎΡΠΈΡΠ΅Π» Π·Π° Ρ ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡΠ° NVMM, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° NetBSD.
- Π GUI ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΎΠ»Π° ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° VNC ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π²Π΅ΡΠ΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° ΡΠ°ΠΌΠΎ ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Ρ Π²ΡΠ½ΡΠ΅Π½ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ (gnutls, libgcrypt ΠΈΠ»ΠΈ nettle).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru