Rust๋กœ ์ž‘์„ฑ๋œ Redox OS 0.8 ์šด์˜ ์ฒด์ œ ์ถœ์‹œ

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

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