SerenityOS ํ”„๋กœ์ ํŠธ๋Š” ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–์ถ˜ Unix ๊ณ„์—ด OS๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ํ”„๋ ˆ์ž„ ์›Œํฌ์—์„œ ํ‰์˜จ ์—ด๊ด‘์ ์ธ ๊ทธ๋ฃน์€ 86๋…„๋Œ€ ํ›„๋ฐ˜ ์šด์˜ ์ฒด์ œ ์Šคํƒ€์ผ๋กœ ์„ค๊ณ„๋œ ์ž์ฒด ์ปค๋„๊ณผ ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–์ถ˜ x1990 ์•„ํ‚คํ…์ฒ˜์šฉ Unix์™€ ์œ ์‚ฌํ•œ ์šด์˜ ์ฒด์ œ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์€ ๊ด€์‹ฌ์„ ์œ„ํ•ด ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆ˜ํ–‰๋˜๋ฉฐ ๊ธฐ์กด ์šด์˜ ์ฒด์ œ์˜ ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ์ €์ž๋Š” SerenityOS๋ฅผ ์ผ์ƒ ์ž‘์—…์— ์ ํ•ฉํ•œ ์ˆ˜์ค€์œผ๋กœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ณ  90๋…„๋Œ€ ํ›„๋ฐ˜ ์‹œ์Šคํ…œ์˜ ๋ฏธํ•™์„ ๋ณด์กดํ•˜๋ฉด์„œ๋„ ํ˜„๋Œ€ ์‹œ์Šคํ…œ์˜ ์ˆ™๋ จ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์œ ์šฉํ•œ ์•„์ด๋””์–ด๋กœ ์ด๋ฅผ ๋ณด์™„ํ•œ๋‹ค๋Š” ๋ชฉํ‘œ๋ฅผ ์„ธ์› ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ๊ณต๊ธ‰ BSD ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ.

์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ตฌ์ฒด์ ์ธ ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•˜๊ณ  ๋งค์ผ๋งค์ผ ์กฐ๊ธˆ์”ฉ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€ ๋‹ค ์ทจ๋ฏธ๋กœ ์™„์ „ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ OS๋ฅผ ๋งŒ๋“ค๊ณ  ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ์ƒ๊ฐ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค. ๋™์ผํ•œ ์ €์ž์˜ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ปดํ“จํŠธ๋ก , 2003๋…„๋ถ€ํ„ฐ ๊ฐœ๋ฐœ ์ค‘์ธ i386 ํ”„๋กœ์„ธ์„œ๋ฅผ ํƒ‘์žฌํ•œ PC ์—๋ฎฌ๋ ˆ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.

SerenityOS ํ”„๋กœ์ ํŠธ๋Š” ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–์ถ˜ Unix ๊ณ„์—ด OS๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์„ ์ œ์  ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น;
  • ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ;
  • ๋ณตํ•ฉ ๋ฐ ์œˆ๋„์šฐ ์„œ๋ฒ„ WindowServer;
  • ๊ทธ๋ž˜ํ”ฝ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ž์ฒด ํ”„๋ ˆ์ž„์›Œํฌ LibGUI ์œ„์ ฏ ์„ธํŠธ๋กœ;
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์‹œ๊ฐ์  ๋””์ž์ธ ํ™˜๊ฒฝ
  • ARP, TCP, UDP ๋ฐ ICMP๋ฅผ ์ง€์›ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ์Šคํƒ. ์†Œ์œ ํ•˜๋‹ค DNS ๋ฆฌ์กธ๋ฒ„;
  • Ext2 ๊ธฐ๋ฐ˜ ํŒŒ์ผ ์‹œ์Šคํ…œ(์ž์ฒด ๊ตฌํ˜„ C++์—์„œ);
  • Unix ๊ณ„์—ด ํ‘œ์ค€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(LibC) ๊ทธ๋ฆฌ๊ณ  ์„ธํŠธ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ์ž ์œ ํ‹ธ๋ฆฌํ‹ฐ(cat, cp, chmod, env, kill, ps, ping, su, sort, strace, uptime ๋“ฑ)
  • ํŒŒ์ดํ”„ ๋ฐ I/O ๋ฆฌ๋””๋ ‰์…˜์„ ์ง€์›ํ•˜๋Š” ๋ช…๋ น์ค„ ์…ธ;
  • ELF ํ˜•์‹์˜ mmap() ๋ฐ ์‹คํ–‰ ํŒŒ์ผ ์ง€์›
  • ์˜์‚ฌ FS /proc ์กด์žฌ;
  • ๋กœ์ปฌ Unix ์†Œ์ผ“ ์ง€์›
  • ์˜์‚ฌ ํ„ฐ๋ฏธ๋„ ๋ฐ /dev/pts ์ง€์›;
  • ๋„์„œ๊ด€ LibCore ํšจ๊ณผ์ ์ธ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ(์ด๋ฒคํŠธ ๋ฃจํ”„)๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.
  • SDL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง€์›;
  • PNG ์ด๋ฏธ์ง€ ์ง€์›;
  • ๋‚ด์žฅ๋œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„ธํŠธ: ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ, ํŒŒ์ผ ๊ด€๋ฆฌ์ž, ์—ฌ๋Ÿฌ ๊ฒŒ์ž„(์ง€๋ขฐ ์ฐพ๊ธฐ ๋ฐ ๋ฑ€), ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค, ๊ธ€๊ผด ํŽธ์ง‘๊ธฐ, ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ๊ด€๋ฆฌ์ž, ํ„ฐ๋ฏธ๋„ ์—๋ฎฌ๋ ˆ์ดํ„ฐ;

์ถœ์ฒ˜ : opennet.ru

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