ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Siemens ΡΠ΅Π»ΠΈΠ· ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° . ΠΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ x86_64 Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ VMX+EPT ΠΈΠ»ΠΈ SVM+NPT (AMD-V), Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ ARMv7 ΠΈ ARMv8/ARM64 Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π΄Π»Ρ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° Jailhouse, ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Debian Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΡΡΡΡΠΎΠΉΡΡΠ². ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPLv2.
ΠΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΡΠ΄ΡΠ° Linux ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ°. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ Π³ΠΎΡΡΠ΅Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠΎΡΡΠ°Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° Linux. ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ CPU Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ Jailhouse ΡΠ²Π»ΡΡΡΡΡ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ ΠΊ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ CPU, ΠΎΠ±Π»Π°ΡΡΠΈ ΠΠΠ£ ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΎ Π·Π° ΡΠ²ΠΎΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠΌ ΡΠ΄ΡΠΎΠΌ.
ΠΡΠΈ ΠΆΠ΅ΡΡΠΊΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ ΠΊ 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 Π΄Π»Ρ ΠΊΠΎΡΠ½Π΅Π²ΡΡ ΠΊΠ°ΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ Intel ΡΠ΅ΠΆΠΈΠΌΠ° CR4.UMIP (User-Mode Instruction Prevention), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ SGDT, SLDT, SIDT, SMSW ΠΈ STR, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² Π°ΡΠ°ΠΊΠ°Ρ , Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΡ Π½Π° ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
