ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Siemens ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° . Π₯ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΡΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ x86_64 Ρ VMX+EPT ΠΈΠ»ΠΈ SVM+NPT (AMD-V), ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ ARMv7 ΠΈ ARMv8/ARM64 Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈ Π·Π° Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° Jailhouse, ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Debian ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ GPLv2.
Π₯ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΡΡ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ» Π·Π° Linux ΡΠ΄ΡΠΎ ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π·Π° Π³ΠΎΡΡΡΠ²Π°ΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π²Π΅ΡΠ΅ ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΡΠ΄ΡΠΎ Π½Π° Linux. ΠΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈΡΠ΅ ΠΎΡ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ CPU Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΡΠ»ΠΈΡΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Jailhouse ΡΠ° Π»Π΅ΠΊΠ°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° ΠΊΡΠΌ ΡΠΈΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΊΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ CPU, ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° RAM ΠΈ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π΅Π΄ΠΈΠ½ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ΅Π½ ΡΡΡΠ²ΡΡ Π΄Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΡΡΠ΅Π΄ΠΈ, Π²ΡΡΠΊΠ° ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π΅ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ΅Π½Π° ΠΊΡΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΡΠΈ ΡΠ΄ΡΠΎ.
ΠΡΠΈ ΡΡΡΠΎΠ³Π° ΠΏΡΠΈΠ²ΡΡΠ·Π°Π½ΠΎΡΡ ΠΊΡΠΌ CPU ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΎΡ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π°Ρ Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΌΡ ΡΡΠ°Π²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½ΡΠΌΠ° Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΠ»ΠΎΠΆΠ΅Π½ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΎ CPU ΡΠ΄ΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ Π½Π° ΡΠΎΠ²Π° CPU Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π΄ΡΡΠ³ΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠ»ΡΡΡΡ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΅, ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ Jailhouse ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π·Π°Π΄Π°ΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΈΠ½ΡΡΡΡ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°ΡΠ° ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ, Π·Π°Π²ΠΈΡΠ΅ΡΠ° ΠΎΡ Π±ΡΠΎΡ ΡΠ΄ΡΠ° Π½Π° CPU.
Π ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π½Π° Jailhouse Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈ ΡΠ΅ Π½Π°ΡΠΈΡΠ°Ρ βΠΊΠ°ΠΌΠ΅ΡΠΈβ (cell, Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° jailhouse). ΠΡΡΡΠ΅ Π² ΠΊΠ°ΠΌΠ΅ΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ Π΅Π΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΠΎΡΠ΅Π½ ΡΡΡΠ²ΡΡ, ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΎ CPU ΡΠ΄ΡΠΎ. Π ΠΊΠ°ΠΌΠ΅ΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π° ΡΡΠ΅Π΄Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΠ»Π΅ΠΊΠΎΡΠ΅Π½ΠΈ ΡΡΠ΅Π΄ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ Π·Π°Π΄Π°Π²Π° Π² , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠΈ CPU, ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ Π²Ρ ΠΎΠ΄Π½ΠΎ/ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΠΏΠΎΡΡΠΎΠ²Π΅.

Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
- ΠΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈΡΠ΅ Raspberry Pi 4 Model B ΠΈ Texas Instruments J721E-EVM;
- ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ivshmem, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π΅ΡΠΊΠΈΡΠ΅. ΠΡΡΡ
Ρ Π½ΠΎΠ²ΠΎΡΠΎ ivshmem ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΡΠ°Π½ΡΠΏΠΎΡΡ Π·Π° VIRTIO;
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΏΠ°ΠΌΠ΅Ρ (hugepage) Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π² ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Intel, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ Π°ΡΠ°ΠΊΡΠ²Π°Ρ Π΄Π° ΠΈΠ½ΠΈΡΠΈΠΈΡΠ° ΠΎΡΠΊΠ°Π· Π² ΡΡΠ»ΡΠ³Π°ΡΠ°, Π²ΠΎΠ΄Π΅Ρ Π΄ΠΎ Π·Π°Π²ΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Β«Machine Check ErrorΒ»;
- ΠΠ° ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ ARM64 ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° SMMUv3 (System Memory Management Unit) ΠΈ TI PVU (Peripheral Virtualization Unit). ΠΠ° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈ Π²ΡΡΡ Ρ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ (bare-metal), Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° PCI;
- ΠΠ° x86 ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΡΠ΅Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΠ°ΠΌΠ΅ΡΠΈ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΆΠΈΠΌΠ° CR4.UMIP (User-Mode Instruction Prevention), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½ ΠΎΡ Intel ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π·Π°Π±ΡΠ°Π½Π° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ SGDT, SLDT, SIDT, SMSW ΠΈ STR, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² Π°ΡΠ°ΠΊΠΈ, Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΡΠΌ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
