GNU Shepherd 0.9.2 ์ดˆ๊ธฐํ™” ์‹œ์Šคํ…œ ์ถœ์‹œ

์ข…์†์„ฑ์„ ์ง€์›ํ•˜๋Š” SysV-init ์ดˆ๊ธฐํ™” ์‹œ์Šคํ…œ์˜ ๋Œ€์•ˆ์œผ๋กœ GNU Guix ์‹œ์Šคํ…œ ๋ฐฐํฌํŒ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœ ์ค‘์ธ ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž GNU Shepherd 0.9.2(์ด์ „ dmd)๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Shepherd ์ œ์–ด ๋ฐ๋ชฌ๊ณผ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” Guile ์–ธ์–ด(Scheme ์–ธ์–ด ๊ตฌํ˜„ ์ค‘ ํ•˜๋‚˜)๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์„œ๋น„์Šค ์‹œ์ž‘์„ ์œ„ํ•œ ์„ค์ • ๋ฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Shepherd๋Š” ์ด๋ฏธ GuixSD GNU/Linux ๋ฐฐํฌํŒ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์œผ๋ฉฐ GNU/Hurd์—์„œ๋„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด์ง€๋งŒ Guile ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  POSIX ํ˜ธํ™˜ OS์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Shepherd๋Š” ์„œ๋น„์Šค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์ค‘์ง€ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์„ ํƒํ•œ ์„œ๋น„์Šค๊ฐ€ ์˜์กดํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋™์ ์œผ๋กœ ์‹๋ณ„ํ•˜๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. Shepherd๋Š” ๋˜ํ•œ ์„œ๋น„์Šค ๊ฐ„์˜ ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•˜๊ณ  ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋Š” ๊ธฐ๋ณธ ์ดˆ๊ธฐํ™” ์‹œ์Šคํ…œ(PID 1๋กœ ์ดˆ๊ธฐํ™”)์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ถŒํ•œ์ด ์žˆ๋Š” ์‹คํ–‰์„ ํ†ตํ•ด ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค(์˜ˆ: tor, privoxy, mcron ๋“ฑ ์‹คํ–‰)๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ณ„๋„์˜ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ์ž ์ค‘.

๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • Shepherd์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ ์„ค๋ช…์ž๋Š” ์ด์ œ exec ๋ช…๋ น์ด ์‹คํ–‰๋  ๋•Œ ์ฆ‰์‹œ ๋‹ซํžˆ์ง€ ์•Š๊ณ  O_CLOEXEC(close-on-exec) ํ”Œ๋ž˜๊ทธ๋กœ ํ‘œ์‹œ๋˜์–ด exec ๋ช…๋ น์— ์˜ํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ์‹œ์ž‘๋œ ์„œ๋น„์Šค์— ํ•ธ๋“ค์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์ด ๋น„์ฐจ๋‹จ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์–ด ๋ถˆ์™„์ „ํ•œ ๋ช…๋ น์„ ๋ณด๋‚ผ ๋•Œ Shepherd๊ฐ€ ์ค‘๋‹จ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ "log-file" ์„ค์ •์— ์ •์˜๋œ ๋กœ๊ทธ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€