ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π΅ ΠΏΡΡΠ²ΠΈΡΡ ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ release Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Nitro, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅. ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΎΡ ΠΠΈΡ ΠΠΎΠΉΠΊΠΈΡΡ Π΅Π½ (Leah Neukirchen), Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° Void Linux. ΠΠΎΠ΄ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· 0BSD.
Nitro ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡΠΎ ΠΊΠ°ΡΠΎ init ΠΏΡΠΎΡΠ΅Ρ (pid 1), ΡΠ°ΠΊΠ° ΠΈ Π² ΡΠΎΡΠΌΠ° Π½Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠΎΡΠ΅Ρ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Ρ Π±Π΅Π·ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΏΡΠΈ ΡΡΠΈΠ². ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π±ΠΎΡΠ° Π² Linux ΠΈ FreeBSD, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² ΡΡΠ΅Π΄ΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° C Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Musl. ΠΠΎΡΠΎΡΠ²Π°Ρ ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠΎ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, img ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ram-Π΄ΠΈΡΠΊΠΎΠ²Π΅ (initramfs), ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ (Docker/Podman/LXC/Kubernetes), Π° ΡΡΡΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΡΡΠ°Π½ΡΠΈΠΈ ΠΈ ΡΡΡΠ²ΡΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ init ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ nitroctl.
ΠΠΌΠ΅ΡΡΠΎ ΡΡΡΡΠ°Π²Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π² Nitro ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΌΠΎΠ΄Π΅Π», Π² ΠΊΠΎΠΉΡΠΎ Π²ΡΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡ Π΅ ΠΈΠ·Π½Π΅ΡΠ΅Π½Π° Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠΊΡΠΈΠΏΡ. ΠΠ° Π²ΡΡΠΊΠ° ΡΡΠ»ΡΠ³Π° Π² ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡΡΠ° /etc/nitro ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅: setup β ΡΡΠ΄ΡΡΠΆΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°; run β ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠ΅Π½Π°ΡΠΈΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°; finish β Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈ ΡΠ»Π΅Π΄ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°. ΠΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΈΠΌΠ²ΠΎΠ»Π½Π° Π²ΡΡΠ·ΠΊΠ° Ρ ΠΈΠΌΠ΅ΡΠΎ log, ΡΠΊΠ°Π·Π²Π°ΡΠ° Π½Π° Π΄ΡΡΠ³Π° ΡΡΠ»ΡΠ³Π°, Π½Π° ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π° ΠΈΠ·Ρ ΠΎΠ΄ΡΡ. ΠΠ° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅ΡΠΎ βdownβ Π² Π½Π΅ΠΉΠ½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π° Π·Π° ΠΈΠ³Π½ΠΎΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» β@β ΠΊΡΠΌ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ°.
ΠΠ²ΡΠΎΡΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΡΠΎΡΠ²Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π½Π° Nitro Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ:
- ΠΡΠΈΡΠΊΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π² RAM, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π² ΡΡΠ΅Π΄ΠΈ Ρ Π΄ΠΈΡΠΊΠΎΠ²ΠΈ Π΄ΡΠ»ΠΎΠ²Π΅ Π² ΡΠ΅ΠΆΠΈΠΌ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅.
- ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° polling.
- ΠΠΈΠΏΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π·Π°Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° (Π²ΡΠΈΡΠΊΠΈ Π±ΡΡΠ΅ΡΠΈ ΡΠ΅ Π·Π°Π΄Π΅Π»ΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅).
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°.
- ΠΠΎΡΡΠ°Π²Ρ ΡΠ΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π΅Π½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
- ΠΡΡΡΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° Π΅ΡΠ°ΠΏΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° β ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠ΅ΡΠ²ΠΈΠ·Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΎΡ ΠΏΡΠΎΡΡΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π² ΡΠ²ΡΡΠ·Π°Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π° ΡΠ΅ΡΠ²ΠΈΠ·Π°.
- ΠΠ°Π»ΠΈΡΠΈΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ Π½Π° ΡΠ΅ΡΠ²ΠΈΠ·ΠΈΡΠ΅ ΡΠ»Π΅Π΄ ΡΡΠΈΠ².
- ΠΠ°Π»ΠΈΡΠΈΠ΅ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π²ΠΎΠ΄Π΅Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΠΊΠ°ΠΊΡΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, ΡΠ°ΠΊΠ° ΠΈ ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ Π·Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ΅ΡΠ²ΠΈΠ·ΠΈ.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²Π΅ΡΠΈΠ³Π° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π»ΠΎΠ³Π°, ΠΎΠ±Ρ Π²Π°ΡΠ°ΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΡΠ²ΠΈΠ·Π°.
- Π Π°Π±ΠΎΡΠ°ΡΠ° Π½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΡΠΎΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΡΠ°ΡΠΎΠ²Π½ΠΈΡΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π² FreeBSD ΠΏΡΠ΅Π· /etc/ttys.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ΅Π½ ΡΡΠ°ΡΠΈΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° musl libc.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
