์ด์ ์ฒด์ ์ ๋ด์ฌ๋ ๋ชจ๋ ํ์ ์์ค ๊ธฐ๋ฅ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฐ๊ฒฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํํ๋ก ๊ตฌํ๋ฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ชจ๋ OS์์ ๊ฐ๋ฐ๋ ์ ์์ผ๋ฉฐ ๊ทธ ํ์๋ ํน์ ์ปค๋๋ก ์ปดํ์ผ๋ฉ๋๋ค(๊ฐ๋
์์ฑ๋ ํ๊ฒฝ์ ๋ถํ์ํ ๊ฒ์ ํฌํจํ์ง ์์ผ๋ฉฐ ๋๋ผ์ด๋ฒ๋ ์์คํ
๊ณ์ธต ์์ด ํ์ดํผ๋ฐ์ด์ ์ ์ง์ ์ํธ ์์ฉํ๋ฏ๋ก ๊ฐ์ ๋น๋ฅผ ํฌ๊ฒ ์ค์ด๊ณ ๋ณด์์ ๊ฐํํ ์ ์์ต๋๋ค. MirageOS ์์
์ ์ธ ๋จ๊ณ๋ก ๋๋์ด์ง๋๋ค. ์ฆ, ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ ๊ตฌ์ฑ์ ์๋ณํ์ฌ ๊ตฌ์ฑ์ ์ค๋นํ๋ ๊ฒ์
๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๊ณ ๊ธ OCaml ์ธ์ด๋ก ์์ฑ๋์์์๋ ๋ถ๊ตฌํ๊ณ ๊ฒฐ๊ณผ ํ๊ฒฝ์ ์๋นํ ์ฐ์ํ ์ฑ๋ฅ๊ณผ ์ต์ ํฌ๊ธฐ๋ฅผ ๋ณด์ฌ์ค๋๋ค(์: DNS ์๋ฒ๋ 200KB๋ง ์ฐจ์งํจ). ํ๋ก๊ทธ๋จ์ ์
๋ฐ์ดํธํ๊ฑฐ๋ ๊ตฌ์ฑ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ ์ ํ๊ฒฝ์ ์์ฑํ๊ณ ์์ํ๋ฉด ์ถฉ๋ถํ๋ฏ๋ก ํ๊ฒฝ ์ ์ง ๊ด๋ฆฌ๋ ๋จ์ํ๋ฉ๋๋ค. ์ง์๋จ
์ ๋ฆด๋ฆฌ์ค์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ํดํท์์ ์ ๊ณต๋๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ํ ์ง์ ์ ๊ณต๊ณผ ๊ด๋ จ๋์ด ์์ต๋๋ค.
- ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์์ Unikernel MirageOS๋ฅผ ์คํํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
spt ('์๋๋ฐ์ค ํ๋ก์ธ์ค ์ ์ฐฐ') ํดํท์์ ์ ๊ณตSolo5 . spt ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ ๋ MirageOS ์ปค๋์ seccomp-BPF๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ต์ํ์ ๊ฒฉ๋ฆฌ๊ฐ ์ ์ฉ๋๋ Linux ์ฌ์ฉ์ ํ๋ก์ธ์ค์์ ์คํ๋ฉ๋๋ค. - ์ง์ ๊ตฌํ
์ ํ๋ฆฌ์ผ์ด์ ๋งค๋ํ์คํธ Solo5 ํ๋ก์ ํธ์์ hvt, spt ๋ฐ muen ๋ฐฑ์๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถ๋ฆฌ๋์ด ๋จ์ผ ์ปค๋์ ์ฐ๊ฒฐ๋ ์ฌ๋ฌ ๋คํธ์ํฌ ์ด๋ํฐ ๋ฐ ์ ์ฅ ์ฅ์น๋ฅผ ์ ์ํ ์ ์์ต๋๋ค(genode ๋ฐ virtio ๋ฐฑ์๋์ ๋ํ ์ฌ์ฉ์ ํ์ฌ ํ๋์ ์ฅ์น๋ก ์ ํ๋ฉ๋๋ค). - Solo5(hvt, spt) ๊ธฐ๋ฐ ๋ฐฑ์๋ ๋ณดํธ๊ฐ ๊ฐํ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด SSP(Stack Smashing Protection) ๋ชจ๋๋ก ๊ตฌ์ถ์ด ์ ๊ณต๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru