Google์ ์๋ฒ ๋๋ ํ๋์จ์ด๋ฅผ ์ํ ์์ ํ ์ด์ ์ฒด์ ๋ฅผ ๋ง๋๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ KataOS ํ๋ก์ ํธ์ ๊ด๋ จ๋ ๊ฐ๋ฐ์ ๋ฐ๊ฒฌํ๋ค๊ณ ๋ฐํํ์ต๋๋ค. KataOS ์์คํ ๊ตฌ์ฑ ์์๋ Rust๋ก ์์ฑ๋์์ผ๋ฉฐ seL4 ๋ง์ดํฌ๋ก์ปค๋ ์์์ ์คํ๋ฉ๋๋ค. ์ด์ ๋ํ ์ ๋ขฐ์ฑ์ ๋ํ ์ํ์ ์ฆ๊ฑฐ๊ฐ RISC-V ์์คํ ์์ ์ ๊ณต๋์ด ์ฝ๋๊ฐ ๊ณต์ ์ธ์ด์ ์ง์ ๋ ์ฌ์์ ์์ ํ ์ค์ํจ์ ๋ํ๋ ๋๋ค. ํ๋ก์ ํธ ์ฝ๋๋ Apache 2.0 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๊ณต๊ฐ๋ฉ๋๋ค.
์ด ์์คํ ์ RISC-V ๋ฐ ARM64 ์ํคํ ์ฒ ๊ธฐ๋ฐ ํ๋ซํผ์ ๋ํ ์ง์์ ์ ๊ณตํฉ๋๋ค. ํ๋์จ์ด ์์์ seL4์ KataOS ํ๊ฒฝ์ ์๋์ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด ๊ฐ๋ฐ ๊ณผ์ ์์ Renode ํ๋ ์์ํฌ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ฐธ์กฐ ๊ตฌํ์ผ๋ก KataOS์ OpenTitan ํ๋ซํผ ๊ธฐ๋ฐ์ ๋ณด์ ์นฉ์ ๊ฒฐํฉํ Sparrow ์ํํธ์จ์ด ๋ฐ ํ๋์จ์ด ์ปดํ๋ ์ค๊ฐ ์ ์๋์์ต๋๋ค. ์ ์๋ ์๋ฃจ์ ์ ์ฌ์ฉํ๋ฉด ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ฒ์ฆ๋ ์ด์ ์ฒด์ ์ปค๋์ OpenTitan ํ๋ซํผ ๋ฐ RISC-V ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ ์ ๋ขฐํ ์ ์๋ ํ๋์จ์ด ๊ตฌ์ฑ ์์(RoT, Root of Trust)์ ๊ฒฐํฉํ ์ ์์ต๋๋ค. ํฅํ KataOS ์ฝ๋ ์ธ์๋ ํ๋์จ์ด ๊ตฌ์ฑ ์์๋ฅผ ํฌํจํ ๋ค๋ฅธ ๋ชจ๋ Sparrow ๊ตฌ์ฑ ์์๋ฅผ ๊ณต๊ฐํ ๊ณํ์ ๋๋ค.
์ด ํ๋ซํผ์ ํน๋ณํ ์์ค์ ๋ณดํธ์ ์ฅ์ ์ ๋ฌด ํ์ธ์ด ํ์ํ ๊ธฐ๊ณ ํ์ต ๋ฐ ๊ธฐ๋ฐ ์ ๋ณด ์ฒ๋ฆฌ์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋๋ก ์ค๊ณ๋ ํน์ ์นฉ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋์ ๋๊ณ ๊ฐ๋ฐ๋๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก๋ ์ฌ๋์ ์ด๋ฏธ์ง์ ์์ฑ ๋ น์์ ์กฐ์ํ๋ ์์คํ ์ด ์์ต๋๋ค. KataOS๋ ์ ๋ขฐ์ฑ ๊ฒ์ฆ์ ์ฌ์ฉํ์ฌ ์์คํ ์ ํ ๋ถ๋ถ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ค๋ฅ๊ฐ ์์คํ ์ ๋๋จธ์ง ๋ถ๋ถ, ํนํ ์ปค๋๊ณผ ์ค์ํ ๋ถ๋ถ์ผ๋ก ํ์ฐ๋์ง ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
seL4 ์ํคํ ์ฒ๋ ์ปค๋ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ถ๋ถ์ ์ฌ์ฉ์ ๊ณต๊ฐ์ผ๋ก ์ด๋ํ๊ณ ์ด๋ฌํ ๋ฆฌ์์ค์ ๋ํด ์ฌ์ฉ์ ๋ฆฌ์์ค์ ๋์ผํ ์ก์ธ์ค ์ ์ด ๋๊ตฌ๋ฅผ ์ ์ฉํ๋ ๊ฒ์ผ๋ก ์ ๋ช ํฉ๋๋ค. ๋ง์ดํฌ๋ก์ปค๋์ ํ์ผ, ํ๋ก์ธ์ค, ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋ฑ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ๋์ ์์ค์ ์ถ์ํ๋ฅผ ์ ๊ณตํ์ง ์๊ณ ๋์ ๋ฌผ๋ฆฌ์ ์ฃผ์ ๊ณต๊ฐ, ์ธํฐ๋ฝํธ ๋ฐ ํ๋ก์ธ์ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ์ดํ๊ธฐ ์ํ ์ต์ํ์ ๋ฉ์ปค๋์ฆ๋ง ์ ๊ณตํฉ๋๋ค. ํ๋์จ์ด์ ์ํธ ์์ฉํ๊ธฐ ์ํ ๋์ ์์ค์ ์ถ์ํ ๋ฐ ๋๋ผ์ด๋ฒ๋ ์ฌ์ฉ์ ์์ค ์์ ์ ํํ๋ก ๋ง์ดํฌ๋ก์ปค๋ ์์ ๋ณ๋๋ก ๊ตฌํ๋ฉ๋๋ค. ๋ง์ดํฌ๋ก์ปค๋์์ ์ฌ์ฉํ ์ ์๋ ๋ฆฌ์์ค์ ๋ํ ์ด๋ฌํ ์์ ์ ์ก์ธ์ค๋ ๊ท์น ์ ์๋ฅผ ํตํด ๊ตฌ์ฑ๋ฉ๋๋ค.
์ถ๊ฐ ๋ณดํธ๋ฅผ ์ํด ๋ง์ดํฌ๋ก์ปค๋์ ์ ์ธํ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ ํด์ ํ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค, ๋ ํฌ์ธํฐ ์ญ์ฐธ์กฐ ๋ฐ ๋ฒํผ ์ค๋ฒ๋ฐ๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ๋ฅผ ์ต์ํํ๋ ์์ ํ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก Rust์์ ๊ฐ๋ฐ๋์์ต๋๋ค. seL4 ํ๊ฒฝ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก๋, ์์คํ ์๋น์ค, ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ํ๋ ์์ํฌ, ์์คํ ํธ์ถ์ ์ ๊ทผํ๊ธฐ ์ํ API, ํ๋ก์ธ์ค ๊ด๋ฆฌ์, ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ํ ๋ฉ์ปค๋์ฆ ๋ฑ์ด Rust๋ก ์์ฑ๋์์ต๋๋ค. ๊ฒ์ฆ๋ ์ด์ ๋ธ๋ฆฌ๋ seL4 ํ๋ก์ ํธ์์ ๊ฐ๋ฐํ CAmkES ํดํท์ ์ฌ์ฉํฉ๋๋ค. CAmkES์ฉ ๊ตฌ์ฑ ์์๋ Rust์์๋ ๋ง๋ค ์ ์์ต๋๋ค.
Rust๋ ์ฐธ์กฐ ํ์ธ, ๊ฐ์ฒด ์์ ๊ถ ๋ฐ ๊ฐ์ฒด ์๋ช
์ถ์ (๋ฒ์)์ ํตํด ์ปดํ์ผ ํ์์ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ๊ฐํํ๊ณ ๋ฐํ์ ์ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค์ ์ ํ์ฑ์ ํ๊ฐํฉ๋๋ค. Rust๋ ๋ํ ์ ์ ์ค๋ฒํ๋ก์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ์ฌ์ฉํ๊ธฐ ์ ์ ๋ณ์ ๊ฐ์ ์ด๊ธฐํํ๋๋ก ์๊ตฌํ๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๋ณ ์ฐธ์กฐ ๋ฐ ๋ณ์ ๊ฐ๋
์ ์ฌ์ฉํ๊ณ , ๋
ผ๋ฆฌ์ ์ค๋ฅ๋ฅผ ์ต์ํํ๊ธฐ ์ํด ๊ฐ๋ ฅํ ์ ์ ์ ํ ์ง์ ์ ์ ๊ณตํฉ๋๋ค.
์ถ์ฒ : opennet.ru