Genode OS Framework์ ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ผ๋ฐ ์ฌ์ฉ์๊ฐ ์ผ์์ ์ธ ์์ ์ ์ํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ฒ์ฉ ์ด์ ์ฒด์ ๊ฐ ๊ฐ๋ฐ๋๋ ํ๋ ์์ํฌ ๋ด์์ Sculpt 23.10 ํ๋ก์ ํธ์ ๋ฆด๋ฆฌ์ค๊ฐ ์ ๊ณต๋ฉ๋๋ค. ํ๋ก์ ํธ์ ์์ค ํ ์คํธ๋ AGPLv3 ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. 28MB ํฌ๊ธฐ์ LiveUSB ์ด๋ฏธ์ง ๋ค์ด๋ก๋๊ฐ ์ ๊ณต๋ฉ๋๋ค. ์์ ์ VT-d ๋ฐ VT-x ํ์ฅ์ด ํ์ฑํ๋ Intel ํ๋ก์ธ์ ๋ฐ ๊ทธ๋ํฝ์ด ์๋ ์์คํ ๊ณผ VMM ํ์ฅ์ด ์๋ ARM ์์คํ ์์ ์ง์๋ฉ๋๋ค.
์ฃผ์ ํ์ :
- CPU ๋งค๊ฐ๋ณ์ ๊ด๋ฆฌ ๋๊ตฌ๊ฐ ํ์ฅ๋์์ต๋๋ค. ๋ํํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์๋ ์ ์ ํ๋กํ(์ ์ ๋๋ ์ฑ๋ฅ) ๊ฐ ์ ํ, ๊ฐ CPU ์ฝ์ด์ ์จ๋ ๋ณด๊ธฐ, CPU ์ฃผํ์ ๋ณํ ๋ชจ๋ํฐ๋ง, ์ ๋ ฅ ์๋น ์ ๋ณด ๋๋ฆด๋ค์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด Framework Gen 12 ๋ ธํธ๋ถ์์๋ ๋ฐฐํฐ๋ฆฌ ์ถ์ , ํค๋ณด๋ ๋ฐฑ๋ผ์ดํธ ์ ์ด ๋ฐ ์ธ๋ถ ๋ชจ๋ํฐ ์ฐ๊ฒฐ ๊ธฐ๋ฅ์ด ๊ตฌํ๋๋ ๋ฑ ์ต์ ๋ ธํธ๋ถ ์์ ์ ๋ํ ์ง์์ด ๊ฐ์ ๋์์ต๋๋ค.
- PinePhone ์ค๋งํธํฐ ์ด์ ๋ธ๋ฆฌ์๋ ์ธํฐํ์ด์ค๊ฐ ์ต์ ํ๋๊ณ ํ๋์จ์ด ๋ฒํผ ์ง์์ด ๊ตฌํ๋์์ผ๋ฉฐ ํฐ์น ํจ๋ ํ๋ฉด์ฉ ๋๋ผ์ด๋ฒ๋ฅผ ์ธ๋ก๋ํ์ฌ ์ ๋ ฅ ์๋น๋ฅผ ์ต๋ 40%๊น์ง ์ค์ด๋ ์๋ก์ด ํ๋ฉด ๋ณดํธ๊ธฐ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- GCC 12.3์ผ๋ก ๋น๋๊ฐ ์ ๊ณต๋ฉ๋๋ค.
- ๋คํธ์ํฌ ์นด๋์ฉ ๋๋ผ์ด๋ฒ๊ฐ Linux ์ปค๋ 6.1.20์์ ์ด์๋ ๋ฒ์ ์ผ๋ก ๋์ฒด๋์์ต๋๋ค.
- ๋ธ๋ก ์ฅ์น ์ํธํ ์์ง์ด ์ฌ์ค๊ณ๋์์ต๋๋ค.
- ๋๋ฒ๊น ๊ธฐ๋ฅ์ด ํ์ฅ๋์์ต๋๋ค.
- C++20 ํ์ค์ ์ฌ์ฉํ๋๋ก ๊ฐ๋ฐ์ด ์ด์ ๋์์ต๋๋ค(์ด์ ์๋ C++17์ ์ฌ์ฉํ์ต๋๋ค).
- ๊ธฐ์กด SDK๋ฅผ ์ฌ์ฉํ์ฌ Lomiri ๋ฐ Rust Cargo์ ๊ฐ์ Genode์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- RaspberryPi ๋ฐ i.MX6 ๋ณด๋์ ์ฌ์ฉ๋๋ USB ์ปจํธ๋กค๋ฌ์ฉ ๋๋ผ์ด๋ฒ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- Intel GPU, ์ฌ์ด๋ ์นด๋ ๋ฐ WiFi์ฉ ๋๋ผ์ด๋ฒ ์ฑ๋ฅ์ด ํฅ์๋์์ต๋๋ค.
- Linux์ ๋๋ผ์ด๋ฒ ์ฌ์ฉ์ ํ์ฉํ๋ DDE(์ฅ์น ๋๋ผ์ด๋ฒ ํ๊ฒฝ) ๊ณ์ธต์ด Linux ์ปค๋ 6.1.20์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
์์คํ ์ ์ผ๋ฐ ์์คํ ๊ด๋ฆฌ ์์ ์ ์ํํ ์ ์๋ Leitzentrale ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. GUI์ ์ผ์ชฝ ์๋จ์๋ ์ฌ์ฉ์ ๊ด๋ฆฌ, ๋๋ผ์ด๋ธ ์ฐ๊ฒฐ ๋ฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ค์ ์ ์ํ ๋๊ตฌ๊ฐ ํฌํจ๋ ๋ฉ๋ด๊ฐ ํ์๋ฉ๋๋ค. ์ค์์๋ ์์คํ ๊ตฌ์ฑ ์์ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํ๋ ๊ทธ๋ํ ํ์์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ์์คํ ์ฑ์ฐ๊ธฐ๋ฅผ ์ํ ๊ตฌ์ฑ์๊ฐ ์์ต๋๋ค. ์ฌ์ฉ์๋ ๋ํ์์ผ๋ก ๊ตฌ์ฑ ์์๋ฅผ ์์๋ก ์ ๊ฑฐํ๊ฑฐ๋ ์ถ๊ฐํ์ฌ ์์คํ ํ๊ฒฝ ๋๋ ๊ฐ์ ๋จธ์ ์ ๊ตฌ์ฑ์ ์ ์ํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๋ ์ธ์ ๋ ์ง ์ฝ์ ๊ด๋ฆฌ ๋ชจ๋๋ก ์ ํํ ์ ์์ด ๊ด๋ฆฌ์ ๋ ํฐ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ๊ธฐ์กด ๋ฐ์คํฌํฑ์ Linux ๊ฐ์ ๋จธ์ ์์ TinyCore Linux ๋ฐฐํฌํ์ ์คํํ์ฌ ์ป์ ์ ์์ต๋๋ค. ์ด ํ๊ฒฝ์์๋ Firefox ๋ฐ Aurora ๋ธ๋ผ์ฐ์ , Qt ๊ธฐ๋ฐ ํ ์คํธ ํธ์ง๊ธฐ ๋ฐ ๋ค์ํ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ช ๋ น์ค ์ ํธ๋ฆฌํฐ๋ฅผ ์คํํ๊ธฐ ์ํด noux ํ๊ฒฝ์ด ์ ๊ณต๋ฉ๋๋ค.
Genode๋ Linux ์ปค๋(32๋นํธ ๋ฐ 64๋นํธ) ๋๋ NOVA ๋ง์ดํฌ๋ก์ปค๋(๊ฐ์ํ ํฌํจ x86), seL4(x86_32, x86_64, ARM), Muen(x86_64), Fiasco.OC(x86_32)์์ ์คํ๋๋ ๋ง์ถคํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ํตํฉ ์ธํ๋ผ๋ฅผ ์ ๊ณตํฉ๋๋ค. , x86_64, ARM), L4ka::Pistachio(IA32, PowerPC), OKL4, L4/Fiasco(IA32, AMD64, ARM) ๋ฐ ARM ๋ฐ RISC-V ํ๋ซํผ์ฉ ์ง์ ์คํ ์ปค๋. ํฌํจ๋ ๋ฐ๊ฐ์ํ Linux ์ปค๋ L4Linux๋ Fiasco.OC ๋ง์ดํฌ๋ก์ปค๋ ์์์ ์คํ๋๋ฉฐ ์ผ๋ฐ Linux ํ๋ก๊ทธ๋จ์ด Genode์์ ์คํ๋๋๋ก ํฉ๋๋ค. L4Linux ์ปค๋์ ํ๋์จ์ด์ ์ง์ ์ํธ ์์ฉํ์ง ์์ง๋ง ์ผ๋ จ์ ๊ฐ์ ๋๋ผ์ด๋ฒ๋ฅผ ํตํด Genode ์๋น์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ค์ํ Linux ๋ฐ BSD ๊ตฌ์ฑ ์์๊ฐ Genode์ฉ์ผ๋ก ํฌํ
๋์์ผ๋ฉฐ Gallium3D๊ฐ ์ง์๋์์ผ๋ฉฐ Qt, GCC ๋ฐ WebKit์ด ํตํฉ๋์์ผ๋ฉฐ ํ์ด๋ธ๋ฆฌ๋ Linux/Genode ํ๊ฒฝ์ด ๊ตฌํ๋์์ต๋๋ค. NOVA ๋ง์ดํฌ๋ก์ปค๋ ์์์ ์คํ๋๋ VirtualBox ํฌํธ๊ฐ ์ค๋น๋์์ต๋๋ค. ๋ง์ ์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด OS ์์ค์์ ๊ฐ์ํ๋ฅผ ์ ๊ณตํ๋ ๋ง์ดํฌ๋ก ์ปค๋ ๋ฐ Noux ํ๊ฒฝ์์ ์ง์ ์คํ๋๋๋ก ์กฐ์ ๋์์ต๋๋ค. ์ด์๋์ง ์์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ค๋ฉด ๊ฐ๋ณ ์์ฉ ํ๋ก๊ทธ๋จ ์์ค์์ ๊ฐ์ ํ๊ฒฝ์ ๋ง๋๋ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ๋ฐ๊ฐ์ํ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ Linux ํ๊ฒฝ์์ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru