ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ GNU Shepherd 0.9.2 (Π±ΡΠ²ΡΠΈΠΉ dmd), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° GNU Guix System Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ SysV-init, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π΄Π΅ΠΌΠΎΠ½ ΠΈ ΡΡΠΈΠ»ΠΈΡΡ Shepherd Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Guile (ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΡΠ·ΡΠΊΠ° Scheme), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². Shepherd ΡΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ GuixSD GNU/Linux ΠΈ Π½Π°ΡΠ΅Π»Π΅Π½ ΡΠ°ΠΊΠΆΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² GNU/Hurd, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π»ΡΠ±ΠΎΠΉ POSIX-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΉ ΠΠ‘, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ·ΡΠΊ Guile.
I-Shepherd yenza umsebenzi wokuqala nokumisa izinsizakalo ngokucabangela ubudlelwano phakathi kwamasevisi, ukuhlonza ngokuguquguqukayo nokuqala izinkonzo okuncike kuzo isevisi ekhethiwe. I-Shepherd iphinde isekele ukuthola ukungqubuzana phakathi kwamasevisi futhi ivinjwe ukuthi isebenze kanyekanye. Iphrojekthi ingasetshenziswa kokubili njengohlelo oluyinhloko lokuqalisa (i-init nge-PID 1), futhi ngendlela ehlukile yokuphatha izinqubo zangemuva zabasebenzisi ngabanye (isibonelo, ukusebenzisa i-tor, i-privoxy, i-mcron, njll.) ngokusebenza ngamalungelo. yalaba basebenzisi.
Phakathi kwezinguquko:
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² Shepherd ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠ»Π°Π³ΠΎΠΌ O_CLOEXEC (close-on-exec), Π° Π½Π΅ Π·Π°ΠΊΡΡΠ²Π°ΡΡΡΡ ΡΡΠ°Π·Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Β«exec-commandΒ», ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌ Π½Π΅ Π½Π°ΠΏΡΡΠΌΡΡ, Π° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Β«exec-commandΒ».
- ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΠ΅ shepherd ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΄Π»Ρ Π»ΠΎΠ³-ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ Β«log-fileΒ», Π² ΡΠ»ΡΡΠ°Π΅ Π΅Π³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ.
Source: opennet.ru