์‹ ๋ขฐ์„ฑ ๋†’์€ ์‹œ์Šคํ…œ ๊ตฌ์ถ•์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ๋งˆ์ดํฌ๋กœ์ปค๋„ Muen 1.0 ์ถœ์‹œ

1.0๋…„ ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— ๋ถ„๋ฆฌ ์ปค๋„์„ ๊ฐœ๋ฐœํ•˜๋Š” Muen 86 ํ”„๋กœ์ ํŠธ๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ, ์ •์‹ ์‹ ๋ขฐ์„ฑ ๊ฒ€์ฆ์„ ์œ„ํ•œ ์ˆ˜ํ•™์  ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์Šค ์ฝ”๋“œ์— ์˜ค๋ฅ˜๊ฐ€ ์—†์Œ์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„์€ x64_2014 ์•„ํ‚คํ…์ฒ˜์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋†’์€ ์ˆ˜์ค€์˜ ์•ˆ์ •์„ฑ๊ณผ ๋ฌด์žฅ์•  ๋ณด์žฅ์ด ํ•„์š”ํ•œ ๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” Ada ์–ธ์–ด์™€ ํ•ด๋‹น ์–ธ์–ด์˜ ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์–ธ SPARK 3๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” GPLvXNUMX ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

๋ถ„๋ฆฌ ์ปค๋„์€ ์„œ๋กœ ๋ถ„๋ฆฌ๋œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์‹คํ–‰์„ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๋งˆ์ดํฌ๋กœ ์ปค๋„์ด๋ฉฐ, ๊ทธ ์ƒํ˜ธ ์ž‘์šฉ์€ ์ฃผ์–ด์ง„ ๊ทœ์น™์— ๋”ฐ๋ผ ์—„๊ฒฉํ•˜๊ฒŒ ๊ทœ์ œ๋ฉ๋‹ˆ๋‹ค. ๊ฒฉ๋ฆฌ๋Š” Intel VT-x ๊ฐ€์ƒํ™” ํ™•์žฅ ์‚ฌ์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ๋น„๋ฐ€ ํ†ต์‹  ์ฑ„๋„์˜ ๊ตฌ์„ฑ์„ ์ฐจ๋‹จํ•˜๋Š” ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ํŒŒํ‹ฐ์…”๋‹ ์ปค๋„์€ ๋‹ค๋ฅธ ๋งˆ์ดํฌ๋กœ์ปค๋„๋ณด๋‹ค ๋” ์ตœ์†Œํ™”๋˜๊ณ  ์ •์ ์ด๋ฏ€๋กœ ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์˜ ์ˆ˜๊ฐ€ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

์ปค๋„์€ ํ•˜์ดํผ๋ฐ”์ด์ €์™€ ์œ ์‚ฌํ•œ VMX ๋ฃจํŠธ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋ฉฐ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ๊ณผ ์œ ์‚ฌํ•œ VMX ๋น„๋ฃจํŠธ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์žฅ๋น„์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋Š” Intel VT-d DMA ํ™•์žฅ ๋ฐ ์ธํ„ฐ๋ŸฝํŠธ ์žฌ๋งคํ•‘์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด Muen์—์„œ ์‹คํ–‰๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ PCI ์žฅ์น˜์˜ ๋ณด์•ˆ ๋ฐ”์ธ๋”ฉ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ ๋ขฐ์„ฑ ๋†’์€ ์‹œ์Šคํ…œ ๊ตฌ์ถ•์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ๋งˆ์ดํฌ๋กœ์ปค๋„ Muen 1.0 ์ถœ์‹œ

Muen์˜ ๊ธฐ๋Šฅ์—๋Š” ๋ฉ€ํ‹ฐ ์ฝ”์–ด ์‹œ์Šคํ…œ, ์ค‘์ฒฉ๋œ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€(EPT, Extended Page Tables), MSI(Message Signaled Interrupts) ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ์†์„ฑ ํ…Œ์ด๋ธ”(PAT, Page Attribute Table)์— ๋Œ€ํ•œ ์ง€์›์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Muen์€ ๋˜ํ•œ Intel VMX ์„ ์ ํ˜• ํƒ€์ด๋จธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ณ ์ • ๋ผ์šด๋“œ ๋กœ๋นˆ ์Šค์ผ€์ค„๋Ÿฌ, ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ์ปดํŒฉํŠธ ๋Ÿฐํƒ€์ž„, ์ถฉ๋Œ ๊ฐ์‚ฌ ์‹œ์Šคํ…œ, ๊ทœ์น™ ๊ธฐ๋ฐ˜ ์ •์  ๋ฆฌ์†Œ์Šค ํ• ๋‹น ๋ฉ”์ปค๋‹ˆ์ฆ˜, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ ๋ฐ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์ฑ„๋„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ ๊ตฌ์„ฑ์š”์†Œ ๋‚ด์—์„œ์˜ ํ†ต์‹ .

64๋น„ํŠธ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ, 32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ๊ฐ€์ƒ ๋จธ์‹ , Ada ๋ฐ SPARK 64 ์–ธ์–ด์˜ 2014๋น„ํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, Linux๊ฐ€ ํฌํ•จ๋œ ๊ฐ€์ƒ ๋จธ์‹ , Muen ๊ธฐ๋ฐ˜์˜ MirageOS ๊ธฐ๋ฐ˜ ๋…๋ฆฝํ˜• "์œ ๋‹ˆ์ปค๋„"์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ ์š”์†Œ ์‹คํ–‰์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

Muen 1.0 ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ณต๋˜๋Š” ์ฃผ์š” ํ˜์‹  ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ์ธก๋ฉด์„ ๋ฌธ์„œํ™”ํ•˜๋Š” ์ปค๋„(์žฅ์น˜ ๋ฐ ์•„ํ‚คํ…์ฒ˜), ์‹œ์Šคํ…œ(์‹œ์Šคํ…œ ์ •์ฑ…, Tau0 ๋ฐ ํˆดํ‚ท) ๋ฐ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์‚ฌ์–‘์ด ํฌํ•จ๋œ ๋ฌธ์„œ๊ฐ€ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  Muen์—์„œ ์‹คํ–‰๋˜๋Š” ํ‘œ์ค€ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ๊ฒ€์ฆ๋œ ๊ตฌ์„ฑ ์š”์†Œ ์„ธํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” Tau0(Muen System Composer) ํˆดํ‚ท์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ณต๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ์—๋Š” AHCI(SATA) ๋“œ๋ผ์ด๋ฒ„, ์žฅ์น˜ ๊ด€๋ฆฌ์ž(DM), ๋ถ€ํŠธ๋กœ๋”, ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž, ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • muenblock Linux ๋“œ๋ผ์ด๋ฒ„(Muen ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์œ„์—์„œ ์‹คํ–‰๋˜๋Š” ๋ธ”๋ก ์žฅ์น˜์˜ ๊ตฌํ˜„)๊ฐ€ blockdev 2.0 API๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌด๊ฒฐ์„ฑ์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด SBS(Signed Block Stream) ๋ฐ CSL(Command Stream Loader)์„ ์‚ฌ์šฉํ•˜๋„๋ก ์‹œ์Šคํ…œ ์ด๋ฏธ์ง€๋ฅผ ๋ณ€ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • SPARK 2014 ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๊ฒ€์ฆ๋œ AHCI-DRV ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด ATA ์ธํ„ฐํŽ˜์ด์Šค ๋˜๋Š” ๊ฐœ๋ณ„ ๋””์Šคํฌ ํŒŒํ‹ฐ์…˜์„ ์ง€์›ํ•˜๋Š” ๋“œ๋ผ์ด๋ธŒ๋ฅผ ๊ตฌ์„ฑ ์š”์†Œ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • MirageOS ๋ฐ Solo5 ํ”„๋กœ์ ํŠธ์˜ ์œ ๋‹ˆ์ปค๋„ ์ง€์›์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • GNAT Community 2021 ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด Ada ์–ธ์–ด ํˆดํ‚ท์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ง€์†์ ์ธ ํ†ตํ•ฉ ์‹œ์Šคํ…œ์ด Bochs ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ QEMU/KVM ์ค‘์ฒฉ ํ™˜๊ฒฝ์œผ๋กœ ์ด์ „๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Linux ๊ตฌ์„ฑ ์š”์†Œ ์ด๋ฏธ์ง€๋Š” Linux 5.4.66 ์ปค๋„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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