1.0๋ ๊ฐ์ ๊ฐ๋ฐ ๋์ ๋ถ๋ฆฌ ์ปค๋์ ๊ฐ๋ฐํ๋ Muen 86 ํ๋ก์ ํธ๊ฐ ์ถ์๋์์ผ๋ฉฐ, ์ ์ ์ ๋ขฐ์ฑ ๊ฒ์ฆ์ ์ํ ์ํ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์์ค ์ฝ๋์ ์ค๋ฅ๊ฐ ์์์ด ํ์ธ๋์์ต๋๋ค. ์ปค๋์ x64_2014 ์ํคํ ์ฒ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋์ ์์ค์ ์์ ์ฑ๊ณผ ๋ฌด์ฅ์ ๋ณด์ฅ์ด ํ์ํ ๋ฏธ์ ํฌ๋ฆฌํฐ์ปฌ ์์คํ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ๋ก์ ํธ์ ์์ค ์ฝ๋๋ Ada ์ธ์ด์ ํด๋น ์ธ์ด์ ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐฉ์ธ SPARK 3๋ก ์์ฑ๋์์ต๋๋ค. ์ฝ๋๋ GPLvXNUMX ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
๋ถ๋ฆฌ ์ปค๋์ ์๋ก ๋ถ๋ฆฌ๋ ๊ตฌ์ฑ ์์์ ์คํ์ ์ํ ํ๊ฒฝ์ ์ ๊ณตํ๋ ๋ง์ดํฌ๋ก ์ปค๋์ด๋ฉฐ, ๊ทธ ์ํธ ์์ฉ์ ์ฃผ์ด์ง ๊ท์น์ ๋ฐ๋ผ ์๊ฒฉํ๊ฒ ๊ท์ ๋ฉ๋๋ค. ๊ฒฉ๋ฆฌ๋ Intel VT-x ๊ฐ์ํ ํ์ฅ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ ๋น๋ฐ ํต์ ์ฑ๋์ ๊ตฌ์ฑ์ ์ฐจ๋จํ๋ ๋ณด์ ๋ฉ์ปค๋์ฆ์ ํฌํจํฉ๋๋ค. ํํฐ์ ๋ ์ปค๋์ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์ปค๋๋ณด๋ค ๋ ์ต์ํ๋๊ณ ์ ์ ์ด๋ฏ๋ก ์ค๋ฅ๋ฅผ ์ผ์ผํฌ ์ ์๋ ์ํฉ์ ์๊ฐ ์ค์ด๋ญ๋๋ค.
์ปค๋์ ํ์ดํผ๋ฐ์ด์ ์ ์ ์ฌํ VMX ๋ฃจํธ ๋ชจ๋์์ ์คํ๋๋ฉฐ ๋ค๋ฅธ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ ๊ฒ์คํธ ์์คํ ๊ณผ ์ ์ฌํ VMX ๋น๋ฃจํธ ๋ชจ๋์์ ์คํ๋ฉ๋๋ค. ์ฅ๋น์ ๋ํ ์ก์ธ์ค๋ Intel VT-d DMA ํ์ฅ ๋ฐ ์ธํฐ๋ฝํธ ์ฌ๋งคํ์ ์ฌ์ฉํ์ฌ ์ด๋ฃจ์ด์ง๋ฉฐ, ์ด๋ฅผ ํตํด Muen์์ ์คํ๋๋ ๊ตฌ์ฑ ์์์ ๋ํ PCI ์ฅ์น์ ๋ณด์ ๋ฐ์ธ๋ฉ์ ๊ตฌํํ ์ ์์ต๋๋ค.
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