Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Xen ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Xen Hypervisor Π½Π° ΠΏΠ»Π°ΡΠ°Ρ Raspberry Pi 4. ΠΠ΄Π°ΠΏΡΠ°ΡΠΈΠΈ Xen Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΏΡΠΎΡΠ»ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ ΠΏΠ»Π°Ρ Raspberry Pi ΠΌΠ΅ΡΠ°Π»ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π Raspberry Pi 4 Π±ΡΠ» ΠΏΡΠΈΠΌΠ΅Π½ΡΠ½ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ GIC-400, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ Π² Xen, ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π»ΠΈ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π·Π°ΠΏΡΡΠΊΠΎΠΌ Xen Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΠΎ Π½Π° Π΄Π΅Π»Π΅, Π²ΡΡ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ, ΠΈ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Xen Π½Π° Raspberry Pi 4 ΠΏΡΠΈΡΠ»ΠΎΡΡ Π²Π½ΠΎΡΠΈΡΡ Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ.
ΠΠ΅ΡΠ²ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠ»Π°Ρ Raspberry Pi 4 ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π»ΠΈ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΅Π³ΠΎ Π±ΡΠ»ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ Dom0. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ Π² Π²ΡΠΏΡΡΠΊ Xen 4.14, Π½ΠΎ ΡΡΠ°Π·Ρ Π²ΡΠΏΠ»ΡΠ»Π° Π΄ΡΡΠ³Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β Π² ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ Xen Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π²ΡΠ·ΠΎΠ² virt_to_phys, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π» Π΄Π»Ρ Π²ΡΠ΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² Π·Π°Π²Π΅ΡΡΠ°Π»ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ².
ΠΠ° ΡΡΠΎΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈΡΡ ΠΈ Π²ΡΠΏΠ»ΡΠ»Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ DMA β Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π² Xen ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ (x86, ARM ΠΈ ARM64) Π°Π΄ΡΠ΅ΡΠ° DMA ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΈ, Π½ΠΎ Π² Raspberry Pi 4 ΠΎΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ°Π»ΠΈΡΡ. ΠΠ°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠ°ΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ΄ΡΠ° Linux, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ ΠΈ Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ DMA.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΎΡΠ»ΠΈ Π² ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° Linux 5.9 ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Xen ΠΏΡΠΈΠ·Π½Π°Π½ Π³ΠΎΡΠΎΠ²ΡΠΌ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΠ»Π°ΡΠ°Ρ Raspberry Pi 4. Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π° Raspberry Pi 4 ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ (Edge Virtualization Engine), Π΄Π²ΠΈΠΆΠΎΠΊ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° cloud-native ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ Xen, ΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΠΎΡΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ .
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² Xen. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ,
ΠΈ
ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ· Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Ρ
ΠΎΡΡ-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΡ
, ,
,
,
,
ΠΈ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΊΠ°Π·Π° Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
