ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
"๐Ÿ—“๏ธ Simp1OS Dev Logs โ€“ The Quest for "BRANCH" and the Mystery of the Infinite "A""
Dev.toDev.to
Infrastructure

VBE ์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ๋ฐ˜ 1024x768 32-bit ๊ณ ํ•ด์ƒ๋„ ๊ทธ๋ž˜ํ”ฝ OS ๊ตฌํ˜„

"๐Ÿ—“๏ธ Simp1OS Dev Logs โ€“ The Quest for "BRANCH" and the Mystery of the Infinite "A""

Arush Tripathi2026๋…„ 4์›” 19์ผ2๋ถ„advanced

Context

๊ธฐ์กด 16์ƒ‰ VGA์˜ ๋‚ฎ์€ ํ•ด์ƒ๋„์™€ ์ƒ‰์ƒ ํ‘œํ˜„ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•œ 32-bit x86 OS ๊ฐœ๋ฐœ ๊ณผ์ • ๋ถ„์„. ์ปค๋„ ์ˆ˜์ค€์—์„œ ํ•˜๋“œ์›จ์–ด ์ง์ ‘ ์ œ์–ด๋ฅผ ํ†ตํ•œ ๊ณ ์„ฑ๋Šฅ GUI ํ™˜๊ฒฝ ๊ตฌ์ถ•์„ ๋ชฉํ‘œ๋กœ ์„ค์ •.

Technical Solution

  • VESA BIOS Extensions(VBE) ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•œ 1024x768 ํ•ด์ƒ๋„ ๋ฐ 32-bit color depth ํ™•๋ณด
  • 0xFD000000 ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” Manual Framebuffer Mapping ๋ฐฉ์‹ ์ฑ„ํƒ
  • ํ™”๋ฉด ๊นœ๋นก์ž„ ์ œ๊ฑฐ๋ฅผ ์œ„ํ•ด RAM ๋‚ด 3MB back-buffer๋ฅผ ์šด์˜ํ•˜๋Š” Double-Buffering ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๊ตฌํ˜„
  • UI ์š”์†Œ์˜ ๋ Œ๋”๋ง ํšจ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์•„์ด์ฝ˜๊ณผ ํƒœ์Šคํฌ๋ฐ”๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ์— ์ง์ ‘ ๊ธฐ๋กํ•˜๋Š” Baking ์‹œ์Šคํ…œ ์„ค๊ณ„
  • ํฐํŠธ ๋ Œ๋”๋ง ๋ฃจํ”„์˜ ๋กœ์ง ์ถฉ๋Œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด Desktop, Menu, Application์„ ๋ถ„๋ฆฌํ•œ State Machine ์žฌ์„ค๊ณ„
  • ํ•˜๋“œ์›จ์–ด ์ œ์–ด Engine๊ณผ UI ๋กœ์ง Apps๋ฅผ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•œ Total Modularity ์•„ํ‚คํ…์ฒ˜ ์ ์šฉ

- ํ•˜๋“œ์›จ์–ด ์ง์ ‘ ์ œ์–ด ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋งตํ•‘ ์ฃผ์†Œ์˜ ์ •ํ™•ํ•œ ์‹๋ณ„๊ณผ ์ •๋ ฌ ํ™•์ธ - ๊ทธ๋ž˜ํ”ฝ ๋ Œ๋”๋ง ์‹œ Flicker ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ๋”๋ธ” ๋ฒ„ํผ๋ง ์ „๋žต ๊ฒ€ํ†  - ๋ณต์žกํ•œ ์ƒํƒœ ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” UI ์‹œ์Šคํ…œ ์„ค๊ณ„ ์‹œ State Machine์„ ํ†ตํ•œ ๋…ผ๋ฆฌ ๊ณ„์ธต ๋ถ„๋ฆฌ ์ ์šฉ

์›๋ฌธ ์ฝ๊ธฐ