Π ΠΏΡΠΎΠ΅ΠΊΡΠ° containerd Π΅ ΠΏΡΠΈΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° runtime runj ΠΈ ΠΎΡΠ²Π°ΡΡΡΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° OCI-ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Linux, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π·ΠΈ Docker, Π½Π° FreeBSD. Π ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΊΡΠΌ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π΅ Π΄Π°Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π· Ρ Alpine Linux Π½Π° FreeBSD. $ sudo ctr run βrm βruntime wtf.sbk.runj.v1 βtty βsnapshotter zfs docker.io/library/alpine:latest test sh -c 'cat /etc/os-release && uname -a' NAME='Alpine Linux' ID=alpine VERSION_ID=3.16.0 PRETTY_NAME='Alpine Linux v3.16' HOME_URL='https://alpinelinux.org/' BUG_REPORT_URL='https://gitlab.alpinelinux.org/alpine/aports/-/issues' Linux 3.17.0 FreeBSD 13.1-RELEASE releng/13.1-n250148-fc952ac2212 GENERIC x86_64 Linux
ΠΡΠΏΡΠ΅ΠΊΠΈ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈΡ ΡΡΠ°ΡΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° runj ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π΄ΠΎΡΠΈ Π² ΡΠΎΠ·ΠΈ Π²ΠΈΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° Π»ΠΈΡΠ½ΠΈ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ, ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ (Proof Of Concept), Π»ΠΎΠΊΠ°Π»Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΏΡΠ΅Π΄ΠΈ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π² ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ ΠΏΡΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ Π½ΡΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΊΡΠΌ ΡΠ΅ΡΡΠ²Π°Π½ΠΈ ΠΈ ΠΈΠ½Π΄ΡΡΡΡΠΈΠ°Π»Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, Π½ΠΎ Π½ΡΠΆΠ΄Π°ΡΠ° ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ Π΅ ΡΠΏΠ΅ΡΠ½Π°. ΠΠ° ΡΠ°Π±ΠΎΡΠ° ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ jail, jls, jexec ΠΈ ps.
ΠΡΠΎΠ±Π΅Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ runj Π΅ Π»ΠΈΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Π‘Π°ΠΌΡΡΠ» ΠΠ°ΡΠΏ (Samuel Karp), ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Amazon, Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ ΡΠ΅ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Linux-Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Bottlerocket ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π·Π° AWS, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΡΡΠ°ΡΡΠ½ΠΈΠΊ Π² Technical Oversight Board Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° OpenContainers. Π‘Π»Π΅Π΄ Π΄ΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ Π½ΠΈΠ²ΠΎ runj ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π·Π° Π·Π°ΠΌΡΠ½Π° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ runtime Π² ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Docker ΠΈ Kubernetes, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ FreeBSD Π²ΠΌΠ΅ΡΡΠΎ Linux Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π² OCI runtime ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅, ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅, ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅, ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ ΠΈ ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°, ΡΠΎΡΠΊΠΈ Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΈΠΌΠ΅ Π½Π° Ρ
ΠΎΡΡΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
