ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅Π»ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠ° QEMU 6.1. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΌΡΠ»ΡΡΠΎΡΠ° QEMU ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ±ΡΠ°Π½Π½ΡΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΈΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ARM Π½Π° x86-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΌ ΠΠ. Π ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² QEMU ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π° ΡΡΡΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π½Π° CPU ΠΈ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° Xen ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ KVM.
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π€Π°Π±ΡΠΈΡΠΎΠΌ ΠΠ΅Π»Π»Π°ΡΠΎΠΌ (Fabrice Bellard) Ρ ΡΠ΅Π»ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΎΠ±ΡΠ°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ x86 ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Linux Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ , ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ x86. ΠΠ° Π³ΠΎΠ΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΡΠ»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΌΡΠ»ΡΡΠΈΠΈ Π΄Π»Ρ 14 Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ, ΡΠΈΡΠ»ΠΎ ΡΠΌΡΠ»ΠΈΡΡΠ΅ΠΌΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΏΡΠ΅Π²ΡΡΠΈΠ»ΠΎ 400. ΠΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ΅ Π²Π΅ΡΡΠΈΠΈ 6.1 Π²Π½Π΅ΡΠ΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ 3000 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡ 221 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ Π² QEMU 6.1:
- Π QMP (QEMU Machine Protocol) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° «blockdev-reopen» Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΡΠΈΠΏΡΠΎΠ΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ gnutls, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π Π°Π½Π΅Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π²ΡΠΈΠΉΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ libgcrypt ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠ½ Π² ΡΠ°Π·ΡΡΠ΄ ΠΎΠΏΡΠΈΠΉ, Π° Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π½Π° Π±Π°Π·Π΅ nettle ΠΎΡΡΠ°Π²Π»Π΅Π½ ΠΊΠ°ΠΊ Π·Π°ΠΏΠ°ΡΠ½ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ GnuTLS ΠΈ Libgcrypt.
- Π ΡΠΌΡΠ»ΡΡΠΎΡ I2C Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° PMBus ΠΈ I2C-ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡΠΎΠ² (pca9546, pca9548).
- ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΊ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΊΠΎΠ΄Π° TCG (Tiny Code Generator). ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ execlog (ΠΆΡΡΠ½Π°Π» ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΠΈ cache modelling (ΡΠΈΠΌΡΠ»ΡΡΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΡΡΠ° L1 Π² CPU).
- Π ΡΠΌΡΠ»ΡΡΠΎΡ ARM Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ»Π°Ρ Π½Π° Π±Π°Π·Π΅ ΡΠΈΠΏΠΎΠ² Aspeed (rainier-bmc, quanta-q7l1), npcm7xx (quanta-gbs-bmc) ΠΈ Cortex-M3 (stm32vldiscovery). ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π² ΡΠΈΠΏΠ°Ρ Aspeed. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΌΡΠ»ΡΡΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ SVE2 (Π²ΠΊΠ»ΡΡΠ°Ρ bfloat16), ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ±ΡΠΎΡΠ° Π±ΡΡΠ΅ΡΠΎΠ² Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ (TLB).
- Π ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ PowerPC Π΄Π»Ρ ΡΠΌΡΠ»ΠΈΡΡΠ΅ΠΌΡΡ ΠΌΠ°ΡΠΈΠ½ «pseries» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ±ΠΎΠ΅Π² ΠΏΡΠΈ Π³ΠΎΡΡΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΡΡΡΠΎΠΉΡΡΠ² Π² Π½ΠΎΠ²ΡΡ Π³ΠΎΡΡΠ΅Π²ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ , ΠΏΠΎΠ²ΡΡΠ΅Π½ Π»ΠΈΠΌΠΈΡ Π½Π° ΡΠΈΡΠ»ΠΎ CPU ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠΌΡΠ»ΡΡΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² 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