Rust ์ธ์ด์ ๋ง์ดํฌ๋ก์ปค๋ ๊ฐ๋ ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ๋ Redox 0.8 ์ด์ ์ฒด์ ๊ฐ ์ถ์๋์์ต๋๋ค. ํ๋ก์ ํธ์ ๊ฐ๋ฐ์ ๋ฌด๋ฃ MIT ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. Redox OS ํ ์คํธ๋ฅผ ์ํด 768MB ํฌ๊ธฐ์ ๋ฐ๋ชจ ์ด์ ๋ธ๋ฆฌ์ ๊ธฐ๋ณธ ๊ทธ๋ํฝ ํ๊ฒฝ(256MB) ๋ฐ ์๋ฒ ์์คํ ์ฉ ์ฝ์ ๋๊ตฌ(256MB)๊ฐ ํฌํจ๋ ์ด๋ฏธ์ง๊ฐ ์ ๊ณต๋ฉ๋๋ค. ์ด์ ๋ธ๋ฆฌ๋ x86_64 ์ํคํ ์ฒ์ฉ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ UEFI ๋ฐ BIOS๊ฐ ์๋ ์์คํ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Orbital ๊ทธ๋ํฝ ํ๊ฒฝ ์ธ์๋ ๋ฐ๋ชจ ์ด๋ฏธ์ง์๋ DOSBox ์๋ฎฌ๋ ์ดํฐ, ๋ค์ํ ๊ฒ์(DOOM, Neverball, Neverputt, sopwith, syobonaction), ํํ ๋ฆฌ์ผ, rodioplay ์์ ํ๋ ์ด์ด ๋ฐ Sodium ํ ์คํธ ํธ์ง๊ธฐ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์ด์ ์ฒด์ ๋ Unix ์ฒ ํ์ ๋ฐ๋ผ ๊ฐ๋ฐ๋์์ผ๋ฉฐ SeL4, Minix ๋ฐ Plan 9์ ์ผ๋ถ ์์ด๋์ด๋ฅผ ์ฐจ์ฉํ์ต๋๋ค. Redox๋ ํ๋ก์ธ์ค์ ๋ฆฌ์์ค ๊ด๋ฆฌ ๊ฐ์ ์ํธ ์์ฉ๋ง ์ปค๋ ์์ค์์ ์ ๊ณต๋๋ ๋ง์ดํฌ๋ก์ปค๋ ๊ฐ๋ ์ ์ฌ์ฉํ๋ฉฐ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ๊ธฐ๋ฅ์ ์ปค๋๊ณผ ์ฌ์ฉ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋์์ ์ฌ์ฉํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฐฐ์น๋ฉ๋๋ค. ๋ชจ๋ ๋๋ผ์ด๋ฒ๋ ๊ฒฉ๋ฆฌ๋ ์๋๋ฐ์ค ํ๊ฒฝ์ ์ฌ์ฉ์ ๊ณต๊ฐ์์ ์คํ๋ฉ๋๋ค. ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ์ ํธํ์ฑ์ ์ํด ํฌํ ์์ด ๋ง์ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋ ํน์ POSIX ๋ ์ด์ด๊ฐ ์ ๊ณต๋ฉ๋๋ค.
์ด ์์คํ ์ "๋ชจ๋ ๊ฒ์ด URL์ ๋๋ค" ์์น์ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ก๊น ์๋ "log://" URL์, ํ๋ก์ธ์ค ๊ฐ ์ํธ ์์ฉ์๋ "bus://", ๋คํธ์ํฌ ์ํธ ์์ฉ์๋ "tcp://" ๋ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋๋ผ์ด๋ฒ, ์ปค๋ ํ์ฅ ๋ฐ ์ฌ์ฉ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํํ๋ก ๊ตฌํ๋ ์ ์๋ ๋ชจ๋์ ์์ฒด URL ํธ๋ค๋ฌ๋ฅผ ๋ฑ๋กํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด I/O ํฌํธ ์ก์ธ์ค ๋ชจ๋์ ์์ฑํ๊ณ ์ด๋ฅผ URL "port_io://"์ ๋ฐ์ธ๋ฉํ ์ ์์ต๋๋ค. ", ๊ทธ๋ฐ ๋ค์ URL "port_io://60"์ ์ด์ด ํฌํธ 60์ ์ก์ธ์คํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Redox์ ์ฌ์ฉ์ ํ๊ฒฝ์ Orbital์ ์์ฒด ๊ทธ๋ํฝ ์ ธ(Qt ๋ฐ Wayland๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ Orbital ์ ธ๊ณผ ํผ๋ํ์ง ๋ง์ธ์)๊ณผ Flutter, React ๋ฐ Redux์ ์ ์ฌํ API๋ฅผ ์ ๊ณตํ๋ OrbTk ํดํท์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค. Netsurf๋ ์น ๋ธ๋ผ์ฐ์ ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ด ํ๋ก์ ํธ๋ ๋ํ ์์ฒด ํจํค์ง ๊ด๋ฆฌ์, ํ์ค ์ ํธ๋ฆฌํฐ ์ธํธ(binutils, coreutils, netutils, extrautils), ion ๋ช ๋ น ์ ธ, ํ์ค C ๋ผ์ด๋ธ๋ฌ๋ฆฌ relibc, vim๊ณผ ๊ฐ์ ํ ์คํธ ํธ์ง๊ธฐ ๋ํธ๋ฅจ, ๋คํธ์ํฌ ์คํ ๋ฐ ํ์ผ์ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ์ฒด๊ณ. ๊ตฌ์ฑ์ Toml ์ธ์ด๋ก ์ค์ ๋ฉ๋๋ค.
์ ๋ฆด๋ฆฌ์ค์์๋ ์ค์ ํ๋์จ์ด์์ ์๋ํ๋๋ก ๊ณ์ ์์ ํ๊ณ ์์ต๋๋ค. x86_64 ์ํคํ ์ฒ ์ธ์๋ 32๋นํธ x86 ์์คํ (i686, Pentium II ์ด์)์์ ์๋ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ARM64 CPU(aarch64)๋ก ํฌํ ์ด ์งํ ์ค์ ๋๋ค. ์ค์ ARM ํ๋์จ์ด์์์ ์คํ์ ์์ง ์ง์๋์ง ์์ง๋ง QEMU์์ ARM64 ์๋ฎฌ๋ ์ด์ ์ ์ฌ์ฉํ ๋ก๋ฉ์ ๊ฐ๋ฅํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋์ค ํ์ ์์คํ ์ด ํ์ฑํ๋๊ณ ๋ค์ค ๋ชจ๋ํฐ ๊ตฌ์ฑ์ ๋ํ ์ด๊ธฐ ์ง์์ด ์ ๊ณต๋ฉ๋๋ค(UEFI ํ๋ ์ ๋ฒํผ๊ฐ ์๋ ์์คํ ์์). Redox OS์์ ์ง์๋๋ ์ฅ๋น์๋ AC'97 ๋ฐ Intel HD Audio ์ฌ์ด๋ ์นฉ, VESA BIOS ๋๋ UEFI GOP API๋ฅผ ํตํ ๊ทธ๋ํฝ ์ถ๋ ฅ, ์ด๋๋ท(Intel 1/10 Gigabit Ethernet, Realtek RTL8168), ์ ๋ ฅ ์ฅ์น(ํค๋ณด๋, ๋ง์ฐ์ค, ํฐ์นํจ๋)๊ฐ ํฌํจ๋ฉ๋๋ค. , SATA(AHCI, IDE) ๋ฐ NVMe. Wi-Fi ๋ฐ USB์ ๋ํ ์ง์์ ์์ง ์ค๋น๋์ง ์์์ต๋๋ค(USB๋ QEMU์์๋ง ์๋ํจ).
๊ธฐํ ํ์ :
- BIOS ๋ฐ EFI๊ฐ ์๋ ์์คํ ์ ๋ถํ ์ด๋ฏธ์ง๊ฐ ๋ณํฉ๋์์ต๋๋ค.
- clone ๋ฐ exec ์์คํ ํธ์ถ ๊ตฌํ์ด ์ฌ์ฉ์ ๊ณต๊ฐ์ผ๋ก ์ด๋๋์์ต๋๋ค.
- ๋ก๋ฉ ๊ณผ์ ์ด ๋จ์ํ๋์์ต๋๋ค. ์ปค๋์ ์ํด ์์๋๊ณ init ํ๋ก์ธ์ค์ ๊ฐ์ ELF ํ์ผ์ ์ถ๊ฐ ๋ก๋๋ฅผ ์ ๊ณตํ๋ ๋ถํธ์คํธ๋ฉ ํ๋ก๊ทธ๋จ์ด ๊ตฌํ๋์์ต๋๋ค.
- sudo์ ๊ฐ์ setuid ํ๋ก๊ทธ๋จ์ ์ง์ํ๊ธฐ ์ํด ์์ค์ปฌ๋ ์ด์ ๋ ํ๋ก๊ทธ๋จ์ ์ถ๊ฐํ์ต๋๋ค.
- ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค์ ์์ฑ ๋ฐ ์ค์น๋ฅผ ๋จ์ํํ๊ธฐ ์ํด redox-daemon ํฌ๋ ์ดํธ ํจํค์ง๊ฐ ์ ์๋์์ต๋๋ค.
- ์ด์ ๋ธ๋ฆฌ ์์คํ ์ด ์ฌ์ค๊ณ๋์ด ํ๋์ ์์ค ํธ๋ฆฌ์์ ๋ค์ํ ์ํคํ ์ฒ์ฉ์ผ๋ก ๋น๋ํ ์ ์์ต๋๋ค. ๋ค์ํ ๊ตฌ์ฑ์ ์ด์ ๋ธ๋ฆฌ๋ฅผ ๋จ์ํํ๊ธฐ ์ํด build.sh ์คํฌ๋ฆฝํธ๊ฐ ์ ์๋ฉ๋๋ค. Podman ํดํท์ ์ฌ์ฉํ ๋น๋์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ปค๋, ๋ถํธ๋ก๋ ๋ฐ initfs์ ์ด์ ๋ธ๋ฆฌ๋ ๋ค๋ฅธ ํจํค์ง์ ํตํฉ๋ฉ๋๋ค.
- ๊ทธ๋ํฝ ํ๊ฒฝ์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ๋ถํ ์ด๋ฏธ์ง์ ํฌํจ๋์ง ์์ ์์ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๋ฐ๋ชจ ๊ตฌ์ฑ์ ์ถ๊ฐํ์ต๋๋ค.
- ์ค๋์ค ์ฌ์ด๋ ํ์ ์์คํ ์ ์ํํธ์จ์ด ๋ณผ๋ฅจ ์ ์ด์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- AC'97์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ฌ์ด๋ ์นฉ์ฉ ๋๋ผ์ด๋ฒ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. Intel HD ์ค๋์ค ์นฉ์ฉ ๋๋ผ์ด๋ฒ๊ฐ ํฅ์๋์์ต๋๋ค.
- IDE ์ปจํธ๋กค๋ฌ์ฉ ๋๋ผ์ด๋ฒ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- NVMe ๋๋ผ์ด๋ธ์ ๋ํ ์ง์์ด ํฅ์๋์์ต๋๋ค.
- ํฅ์๋ PCI, PS/2, RTL8168, USB HID, VESA ๋๋ผ์ด๋ฒ.
- ์ค์น ํ๋ก์ธ์ค๊ฐ ์ฌ์ค๊ณ๋์์ต๋๋ค. ๋ถํธ๋ก๋, ๋ถํธ์คํธ๋ฉ, ์ปค๋ ๋ฐ initfs๋ ์ด์ /boot ๋๋ ํ ๋ฆฌ์ ์์ต๋๋ค.
- ์ปค๋์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ๋จ์ํํ์ผ๋ฉฐ ์ฌ์ฉ์ ์์ค์์ ์ฃผ์ ๊ณต๊ฐ์ ์กฐ์ํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค.
- Orbital ๊ทธ๋ํฝ ์ ธ์๋ ๋ค์ค ๋ชจ๋ํฐ ์์คํ ์ง์์ด ์ถ๊ฐ๋๊ณ ๋ง์ฐ์ค ์ปค์ ์ฒ๋ฆฌ๊ฐ ๊ฐ์ ๋์์ผ๋ฉฐ ๋ณผ๋ฅจ ๋ณ๊ฒฝ์ ์ํ ํ์๊ธฐ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ๋ฉ๋ด์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์นดํ ๊ณ ๋ฆฌ๋ก ๋๋๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์ถ์ฒ : opennet.ru