์šด์˜ ์ฒด์ œ ToaruOS 2.0 ์ถœ์‹œ

Unix ๊ณ„์—ด ์šด์˜ ์ฒด์ œ์ธ ToaruOS 2.0์ด ์ถœ์‹œ๋˜์–ด ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์ž์ฒด ์ปค๋„, ๋ถ€ํŠธ๋กœ๋”, ํ‘œ์ค€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž, ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ๋ณตํ•ฉ ์ฐฝ ๊ด€๋ฆฌ์ž๊ฐ€ ์žˆ๋Š” ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ•จ๊ป˜ ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” C๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ BSD ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. QEMU, VMware ๋˜๋Š” VirtualBox์—์„œ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” 14.4MB ํฌ๊ธฐ์˜ ๋ผ์ด๋ธŒ ์ด๋ฏธ์ง€๊ฐ€ ๋‹ค์šด๋กœ๋“œ์šฉ์œผ๋กœ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์šด์˜ ์ฒด์ œ ToaruOS 2.0 ์ถœ์‹œ

์ด ํ”„๋กœ์ ํŠธ๋Š” 2010๋…„ ์ผ๋ฆฌ๋…ธ์ด ๋Œ€ํ•™๊ต์—์„œ ์‹œ์ž‘๋˜์—ˆ์œผ๋ฉฐ ์ฒ˜์Œ์—๋Š” ์ƒˆ๋กœ์šด ๋ณตํ•ฉ ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ ๋ถ„์•ผ์˜ ์—ฐ๊ตฌ ์ž‘์—…์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 2012๋…„๋ถ€ํ„ฐ ๊ฐœ๋ฐœ์€ ๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ฐœ๋ฐœํ•œ ToaruOS ์šด์˜ ์ฒด์ œ๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ํ˜•ํƒœ์˜ ์‹œ์Šคํ…œ์—๋Š” ๋ณตํ•ฉ ์ฐฝ ๊ด€๋ฆฌ์ž๊ฐ€ ์žฅ์ฐฉ๋˜์–ด ์žˆ์œผ๋ฉฐ ELF ํ˜•์‹, ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น, ๊ทธ๋ž˜ํ”ฝ ์Šคํƒ์—์„œ ๋™์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์‹คํ–‰ ํŒŒ์ผ์„ ์ง€์›ํ•˜๊ณ  Python 3 ๋ฐ GCC๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ToaruOS๋Š” ๋””์Šคํฌ ๋“œ๋ผ์ด๋ฒ„(PATA ๋ฐ ATAPI), EXT2 ๋ฐ ISO9660 ํŒŒ์ผ ์‹œ์Šคํ…œ, ํ”„๋ ˆ์ž„ ๋ฒ„ํผ์™€ ๊ฐ™์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์˜ ๋Œ€๋ถ€๋ถ„์„ ๊ตฌ์„ฑํ•˜๋Š” ๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์™€ ๋ชจ๋†€๋ฆฌ์‹ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ชจ๋“ˆ์‹ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปค๋„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. , ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค, ๋„คํŠธ์›Œํฌ ์นด๋“œ(AMD PCnet FAST, Realtek RTL8139 ๋ฐ Intel PRO/1000), ์‚ฌ์šด๋“œ ์นฉ(Intel AC'97) ๋ฐ ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์šฉ VirtualBox ์ถ”๊ฐ€ ๊ธฐ๋Šฅ. ์ปค๋„์€ Unix ์Šค๋ ˆ๋“œ, TTY, ๊ฐ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œ, ์˜์‚ฌ ํŒŒ์ผ ์‹œ์Šคํ…œ /proc, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ, IPC, ๋žจ๋””์Šคํฌ, ptrace, ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ, ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น ๋ฐ ๊ธฐํƒ€ ํ‘œ์ค€ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ext2๊ฐ€ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ถ€ํŠธ๋กœ๋”๋Š” BIOS์™€ EFI๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์Šคํƒ์€ BSD ์Šคํƒ€์ผ ์†Œ์ผ“ API์˜ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•˜๊ณ  ๋ฃจํ”„๋ฐฑ์„ ํฌํ•จํ•œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo ์—๋ฎฌ๋ ˆ์ดํ„ฐ, Bochs ๋“ฑ๊ณผ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์ด ToaruOS๋กœ ํฌํŒ…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ค‘์—์„œ Vi์™€ ์œ ์‚ฌํ•œ ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ Bim์ด ๋ˆˆ์— ๋•๋‹ˆ๋‹ค. ์ด๋Š” ํŒŒ์ผ ๊ด€๋ฆฌ์ž, ํ„ฐ๋ฏธ๋„ ์—๋ฎฌ๋ ˆ์ดํ„ฐ, ์œ„์ ฏ ์ง€์› ๊ทธ๋ž˜ํ”ฝ ํŒจ๋„, ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋“ฑ๊ณผ ๊ฐ™์€ ToaruOS ๊ด€๋ จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ์ง€๋‚œ ๋ช‡ ๋…„๊ฐ„ ์‚ฌ์šฉ๋˜์–ด ์™”์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€(PNG, JPEG) ๋ฐ ํŠธ๋ฃจํƒ€์ž… ๊ธ€๊ผด์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” ๋˜ํ•œ ์‹œ์Šคํ…œ์šฉ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฐ ์‚ฌ์šฉ์ž ์ •์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ Python์„ ๋Œ€์ฒดํ•˜๋„๋ก ์„ค๊ณ„๋œ ์ž์ฒด ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ธ Kuroko๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์–ธ์–ด๋Š” ๊ตฌ๋ฌธ(๋ช…์‹œ์ ์ธ ๋ณ€์ˆ˜ ์ •์˜๊ฐ€ ํฌํ•จ๋œ Python์˜ ๋‹จ์ถ• ๋ฐฉ์–ธ์œผ๋กœ ์œ„์น˜)์—์„œ Python์„ ์—ฐ์ƒ์‹œํ‚ค๋ฉฐ ๊ตฌํ˜„์ด ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”์ดํŠธ์ฝ”๋“œ์˜ ์ปดํŒŒ์ผ ๋ฐ ํ•ด์„์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๋ฐ”์ดํŠธ์ฝ”๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋Š” ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์ „์—ญ ์ž ๊ธˆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ์™€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋Š” ์ž‘์€ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(~500KB) ํ˜•ํƒœ๋กœ ์ปดํŒŒ์ผ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ†ตํ•ฉ๋˜๊ณ  C API๋ฅผ ํ†ตํ•ด ํ™•์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ToaruOS ์™ธ์—๋„ Linux, macOS, Windows์—์„œ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ WebAssembly๋ฅผ ์ง€์›ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ToaruOS์˜ ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š”:

  • Misaka ์ปค๋„์—๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ top, strace, dbg, ping ๋ฐ cpuwidget์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์•„ํ•€ ๋ณ€ํ™˜ ์ถ”๊ฐ€๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ทธ๋ž˜ํ”ฝ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐฝ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํŠธ๋ฃจํƒ€์ž… ํ˜•์‹์„ ์ง€์›ํ•˜๋Š” ํ…์ŠคํŠธ ๋ž˜์Šคํ„ฐ๋ผ์ด์ €๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋งˆํฌ์—…์œผ๋กœ ํ…์ŠคํŠธ ์„œ์‹์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ง€์›์ด ํ™•์žฅ๋˜์–ด BIOS ๋ถ€ํŠธ ๋กœ๋”๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. EFI ๋ถ€ํŠธ ๋กœ๋”๊ฐ€ ๋‹ค์‹œ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„ ๋ผ์ธ ๋ช…๋ น์„ ํ†ตํ•œ ํŽธ์ง‘ ์ง€์›์ด ๋‘ ๋ถ€ํŠธ๋กœ๋” ๋ชจ๋‘์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํŒจ๋„ ๋””์ž์ธ์ด ํ˜„๋Œ€ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์œ„์ ฏ์€ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์š”์†Œ์˜ ๋™์  ๋ ˆ์ด์•„์›ƒ ๋ฐ ์ƒˆ๋กœ์šด ํŒ์—…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ทฐ์–ด๊ฐ€ ๋‹ค์‹œ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์ƒˆ๋กœ์šด ํŒ”๋ ˆํŠธ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ณ„์‚ฐ๊ธฐ์˜ ์ƒˆ๋กœ์šด ๊ตฌํ˜„์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์‹œ๊ฐ„๋Œ€ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • VMware์—์„œ ์—๋ฎฌ๋ ˆ์ดํŠธ๋œ Ensoniq ES1371 ์นฉ์…‹์šฉ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์Œ ์ฃผ์š” ๋ฆด๋ฆฌ์Šค 2.1์€ AHCI, xHCI, USB HID ์žฅ์น˜๋ฅผ ์ง€์›ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ๋ธŒ๋žœ์น˜ 2.2์—์„œ๋Š” AArch64 ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์šด์˜ ์ฒด์ œ ToaruOS 2.0 ์ถœ์‹œ
์šด์˜ ์ฒด์ œ ToaruOS 2.0 ์ถœ์‹œ
์šด์˜ ์ฒด์ œ ToaruOS 2.0 ์ถœ์‹œ


์ถœ์ฒ˜ : opennet.ru

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