ΡΠ΅Π»ΠΈz Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° . ΠΠ°ΡΠΎ Π΅ΠΌΡΠ»ΡΡΠΎΡ, QEMU ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Π·Π° Π΅Π΄Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ARM Π½Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Π΅Π½ ΠΊΠΎΠΌΠΏΡΡΡΡ, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ x86. Π ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π² QEMU ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π° ΡΡΠ΅Π΄Π° Π΅ Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ Π½Π°ΡΠΈΠ²Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ Π½Π° CPU ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° Xen ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Π° KVM.
ΠΡΠΎΠ΅ΠΊΡΡΡ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ Π€Π°Π±ΡΠΈΡ ΠΠ΅Π»Π»Π°Ρ (Fabrice Bellard) Ρ ΡΠ΅Π» ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° x86 Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡ x86. ΠΡΠ΅Π· Π³ΠΎΠ΄ΠΈΠ½ΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠ»Π½Π° Π΅ΠΌΡΠ»Π°ΡΠΈΡ Π½Π° 14 Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ, Π° ΡΠΈΡΠ»ΠΎΡΠΎ Π½Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½ΠΈΡΠ΅ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π°Π΄Π²ΠΈΡΠ°Π²Π° 400. ΠΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° Π²Π΅ΡΡΠΈΡ 4.2 ΡΠ° Π²Π½Π΅ΡΠ΅Π½ΠΈ Π½Π°Π΄ 2200 ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΎΡ 198 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ.
ΠΠ»ΡΡΠΎΠ²ΠΈ , Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π² QEMU 4.2:
- Π ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° ΠΊΠΎΠ΄ TCG (Tiny Code Generator) Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° CPU ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ Π°Π΄ΡΠ΅ΡΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°;
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (Network Block Device) Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΡΠΊΠ°Π½ΠΈΡ Π·Π° ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½Π΅ (copy-on-read). ΠΠΎΠ΄ΡΡ Π½Π° NBD ΡΡΡΠ²ΡΡΠ° Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠ΅Π΄Π΅Π½ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ (Ρ ΠΏΡΠ°Π·Π½ΠΈ ΠΌΠ΅ΡΡΠ°). ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ° ΠΎΠ±ΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΡΡΠ²ΡΡΠ° Π½Π° NBD;
- ΠΠΎΠ²ΠΈΡΠ΅Π½Π° Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° LUKS Π΄ΠΈΡΠΊΠΎΠ²Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° AES-XTS;
- Π vfio-pci Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ Β«failover_pair_idΒ» Π·Π° ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° VFIO;
- Π virtio-mmio Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡa virtio-compatible 2 ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° virtio 1.1 ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΎΠΏΠ°ΡΠΊΠΈ () Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° Π΄Π°Π½Π½ΠΈ Ρ Π²ΠΈΡΡΡΠ°Π»Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π·Π° Π²Ρ ΠΎΠ΄/ΠΈΠ·Ρ ΠΎΠ΄ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ;
- Π Π΅ΠΌΡΠ»Π°ΡΠΎΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° x86 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π½ΠΎΠ² ΡΠΈΠΏ Π΅ΠΌΡΠ»ΠΈΡΠ°Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Β«microvmΒ», ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ virtio-mmio Π²ΠΌΠ΅ΡΡΠΎ PCI Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° VMX ΡΡΠ΅Π· ΡΠ»Π°Π³ΠΎΠ²Π΅ΡΠ΅ Β«-cpuΒ». ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π΅ΠΌΡΠ»ΡΠΈΡ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ AVX512 BFloat16. ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½ΠΎΠ²ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ CPU Denverton (ΡΡΡΠ²ΡΡΠ΅Π½ SoC Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Atom), Snowridge ΠΈ Dhyana. Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° macOS Hypervisor Framework (Β«-accel hvfΒ»);
- Π Π΅ΠΌΡΠ»Π°ΡΠΎΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ARM Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° SoC Aspeed AST2600 (Β«ast2600-evbΒ»). ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Semihosting 2.0 Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ STDOUT_STDERR/EXIT_EXTENDED, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° stdout, stderr ΠΈ stdin Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Ρ ΠΎΡΡΠ°. Π KVM Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 256 CPU ΠΈ Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° SIMD ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SVE. Π Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΠΈ Ρ ΡΠΈΠΏ «» Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π³ΠΎΡΠ΅ΡΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. Π£Π²Π΅Π»ΠΈΡΠ΅Π½Π° Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΅ΠΌΡΠ»Π°ΡΠΈΡ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π° ΠΊΠΎΠ΄ TCG.
- Π Π΅ΠΌΡΠ»Π°ΡΠΎΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° PowerPC ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ POWER9: mffsce, mffscrn ΠΈ mffscrni. Π Π΅ΠΌΡΠ»ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΠΈ "powernv" Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Homer ΠΈ OCC SRAM;
- Π Π΅ΠΌΡΠ»Π°ΡΠΎΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° RISC-V Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΎΠΏΡΠΈΡ "-initrd" ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΡΠ΅Π»ΠΈΡ ΡΡΠ°ΡΡΡ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π² ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°;
- Π Π΅ΠΌΡΠ»Π°ΡΠΎΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° s390 Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ IEP (Instruction Execution Protection);
- Π Π΅ΠΌΡΠ»Π°ΡΠΎΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° 68k Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Macintosh Quadro 800 ΠΈ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ NeXTcube;
- Π Π΅ΠΌΡΠ»Π°ΡΠΎΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° xtensa Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π½ΠΎΠ² ΡΠΈΠΏ Π΅ΠΌΡΠ»Π°ΡΠΈΠ²Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ "virt" ΠΈ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ABI call0 Π·Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½Π΅ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
