Genode Project์—์„œ Sculpt 23.10 ๋ฒ”์šฉ OS ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค.

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

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