x82's dummy OS (2006-01 ver)


¿À·¡ ÀüºÎÅÍ ÇÁ·Î¼¼¼­¿¡ ´ëÇÑ ÀÌÇØ¸¦ À§ÇØ ºÎÆ®·¹º§ºÎÅÍ OS °³¹ßÀ» °èÈ¹ÇØ¿Ô½À´Ï´Ù.
¹°·Ð, ÀúÀÇ º»¾÷°ú´Â ´Ù¸¥ ÀÏÀ̱⠶§¹®¿¡ ¾ÈŸ±õ°Ôµµ Áß´ÜÇÒ ¼ö ¹Û¿¡ ¾ø°Ô µÇ¾úÁö¸¸,
ÀÏ´Ü Áö±Ý±îÁö ¿¬±¸Çؿ ³»¿ëÀ» Á¤¸®ÇϰíÀÚ ÆäÀÌÁö¸¦ ÀÛ¼ºÇÏ°Ô µÇ¾ú½À´Ï´Ù.

ÇöÀç±îÁö ¿Ï¼ºµÈ ºÎºÐÀ» ¼³¸íµå¸®ÀÚ¸é, ¾ÆÁÖ ±âÃÊÀûÀÎ ´Ü°èÀε¥, ¸®¾ó¸ðµå¿¡¼­ º¸È£¸ðµå·Î
³Ñ¾î¿À´Â gdt ±¸Çö, ÀÎÅÍ·´Æ® Å×ÀÌºí ±¸Çö, ÆäÀÌ¡ ±¸Çö, °£´ÜÇÑ Å½ºÅ© ½ºÀ§Äª¿¡ ÀÇÇØ
±¸ºÐµÇ´Â Ä¿³Î ÇÁ·Î¼¼½º¿Í »ç¿ëÀÚ ÇÁ·Î¼¼½º(6°³) ¼öÇàÇÏ´Â ºÎºÐ±îÁö ÀÛ¼ºÇÏ¿´½À´Ï´Ù.

ÄÚµå´Â ÀüºÎ »õ·Î ÀÛ¼ºµÇ¾î¾ßÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ±× ÀÌÀ¯´Â, ¿©±â Àú±â¼­ ´Ù¸¥ »ç¶÷ÀÌ
°³¹ßÇÑ Äڵ带 ´Ù¼ö Âü°íÇϸ鼭 ÀÛ¼ºÇ߱⠶§¹®ÀÔ´Ï´Ù. ¾Õ¼­ ¸»¾¸µå·ÈµíÀÌ, ÇÁ·Î¼¼¼­¿¡ ´ëÇÑ
ÀÌÇØ¸¦ µ½±â À§ÇØ °³¹ßÇØº» °ÍÀÌÁö... Àú¸¸ÀÇ OS¸¦ ±¸µ¿½ÃÄѺ¸±â À§Çؼ­ ÀÛ¼ºÇغ¸¾Ò´ø °ÍÀº
¾Æ´Õ´Ï´Ù. ¾ÆÁ÷±îÁö ¸¹ÀÌ ºÎÁ·Çϱ⠶§¹®¿¡ ¼Ò½ºÄڵ带 °ø°³ÇÒ ¼öÁرîÁö´Â ¾Æ´Ñ °Í °°½À´Ï´Ù.
°³¹ßÇϸ鼭 Á¤¸®ÇÑ ¹®¼­´Â °ð °ø°³ÇÒ ¿¹Á¤ÀÔ´Ï´Ù.

OS °³¹ß ºÐ¾ß¸¦ ¿³º¸¸é¼­ ´Ù½Ã Çѹø ´ë´ÜÇϽŠ½Ç·ÂÀںеéÀ» ¸¹ÀÌ ºË°Ô µÇ¾ú½À´Ï´Ù.
±×¸®°í, °³¹ßÇϸ鼭 »ý±ä ¾à°£ÀÇ Èñ¸Á»çÇ×À̶ó¸é, Àú¸¸ÀÇ Çϵå¿þ¾î ÇÁ·Î¼¼¼­¸¦ ±¸ÇöÇÏ¿©
±× À§¿¡¼­ OS¸¦ ±¸µ¿½ÃÄѺ¸´Â °Íµµ Á¤¸» Àç¹ÌÀÖ´Â ÀÏÀÌ µÉ²¨¶ó°í »ý°¢ÇغýÀ´Ï´Ù.
ÀÌ ºÎºÐÀº Á¤¸» ³ªÁß¿¡ Çϳª¾¿ ÇØº¸°í ½Í±º¿ä.



[±¸ÇöµÈ ¸ð½À ½ºÅ©¸°¼¦]


Documents

(1) ¸®¾ó¸ðµå¿¡¼­ º¸È£¸ðµå·Î ³Ñ¾î¿À±â (GDT ±¸Çö) (2) ÀÎÅÍ·´Æ® Å×ÀÌºí ±¸ÇöÇϱâ (3) A20 enable (4) ÆäÀÌ¡ ±¸ÇöÇϱâ (5) ŽºÅ© ½ºÀ§Äª

Problem

ÇöÀç ´ç¸éÇØÀÖ´Â ¹®Á¦Á¡Àº ÆÄÀϽýºÅÛÀÌ ¾ø´Ù´Â °ÍÀÔ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ÆäÀÌ¡ÀÌ ±¸ÇöµÈ »óÅ¿¡¼­ »ç¿ëÀÚ ÇÁ·Î¼¼½ºÀÇ ½ÇÇàÀÌ Áö¼ÓµÇ¸é °£È¤°¡´Ù°¡ ÆäÀÌÁö ÆúÆ®(¿¹¿Ü ÀÎÅÍ·´Æ® 14¹ø #PF)°¡ ¹ß»ýµÇ¾úÀ»¶§ Ä¿³ÎÀÌ ¸ØÃß¾î¹ö¸®´Â Çö»óÀÌ ÀÚÁÖ ÀϾ´Ï´Ù. ½ÇÁ¦ RAM ¿ë·®ÀÌ ÃæºÐÇÑ Çϵå¿þ¾î¿¡¼­´Â ÀÌ·± ÀÏÀÌ ¾øÀ¸´Ï, ´ÙÇàÀÔ´Ï´Ù¸¸. ¾ÕÀ¸·Î ½º¿Ò¿¡ ÀÇÇÑ ¸Þ¸ð¸® °ü¸® ½Ã½ºÅÛÀÌ Ãß°¡ÀûÀ¸·Î ÇÁ·Î±×·¡¹ÖµÇ¾î¾ß ÇÒ °Í °°½À´Ï´Ù. ·Î´õµµ ¹®Á¦°¡ ÀÖ½À´Ï´Ù. ¿ë·®ÀÌ Á¡Â÷ Ä¿Áö¸é¼­ µð½ºÄÏ¿¡¼­ ó¸®ÇÒ ¼ö ¾ø´Â (ÆÄÀϽýºÅÛÀÌ ÀÖ¾î¾ßÇÏ´Â) ¿©·¯°¡Áö ¹®Á¦°¡ ¹ß»ýÇÒ °ÍÀ¸·Î ¿¹»óµÇ°í ÀÖ½À´Ï´Ù. ÇöÀç´Â ¿©Å¸ ´Ù¸¥ dummyOSÀÇ ¹æ½Ä´ë·Î À̹ÌÁö¿¡¼­ ¸Þ¸ð¸® »ó¿¡ Á÷Á¢ setup code¿Í kernel code¸¦ ·ÎµåÇÏ¿© ¼öÇàÇÏ´Â ¹æ½ÄÀ» ÃëÇϰí ÀÖ½À´Ï´Ù.

TODO

Áö±Ý±îÁö ÁøÇàµÈ »óÅ¿¡¼­ ÇÒ ¼ö ÀÖ´Â ÀÏÀº ¿©·¯°¡Áö°¡ ÀÖ°Ú½À´Ï´Ù¸¸. Á¦ÀÏ ½Ã±ÞÇÑ ÆÄÀϽýºÅÛ ±¸ÇöÀÌ ÀÖ°Ú°í, Á¦°¡ ¸ñÇ¥·Î Çϰí ÀÖ´ø ³×Æ®¿öÅ©¸¦ ±¸ÇöÇÏ´Â Àϵµ ÀÖ°Ú½À´Ï´Ù. ÆÄÀϽýºÅÛ ¾øÀ̵µ ³×Æ®¿öÅ© ±¸ÇöÀº ÃæºÐÈ÷ °¡´ÉÇϸ®¶ó º¸°í ÀÖ½À´Ï´Ù. dummy OS »ó¿¡¼­ ³×Æ®¿öÅ© ±¸Çö¿¡ °ü·ÃµÈ ºÎºÐÀº ¾ÆÁ÷±îÁö ÀÚ·á°¡ ºÎÁ·ÇÑ °ü°è·Î ¼²ºÒ¸® ÀÛ¾÷ÇÏÁö ¸øÇß½À´Ï´Ù. ¾ÕÀ¸·Î ÇØ¾ßÇÒ ÀÏÀ» Á¤¸®ÇÏÀÚ¸é ÀÌ·¸°Ô Å©°Ô µÎ ºÎºÐÀ¸·Î ³ª´­ ¼ö Àְڳ׿ä. (1) ÆÄÀϽýºÅÛ °³¹ß (2) ³×Æ®¿öÅ© ±¸Çö ÇöÀç, Àü ³×Æ®¿öÅ© ±¸Çö ÂÊ¿¡ ´õ Å« °ü½ÉÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ÇÊ¿ä·Î ÇÏ´Â ÀÚ·á°¡ ¸ðÀÌ´Â µ¥·Î ½Ã°£³¯¶§¸¶´Ù ÀÛ¾÷ÇÏ·Á°í °èȹÀº Àâ°í ÀÖ½À´Ï´Ù. ¡Ø ¾ÕÀ¸·Î Ãß°¡µÇ´Â »çÇ×Àº ÀÌ ÆäÀÌÁö¿¡ Ãß°¡ÇÒ ¿¹Á¤ÀÔ´Ï´Ù.

Reference

(1) ¸¸µé¸é¼­ ¹è¿ì´Â OS Ä¿³ÎÀÇ ±¸Á¶¿Í ¿ø¸® (ÀúÀÚ: ±èÁعü) (2) How to Write an Operating System (¿øÀúÀÚ: SigOPS, ¹ø¿ª: edward) (3) Protected mode programming and O/S development (¿øÀúÀÚ: Mythrandir , ¹ø¿ª: edward)
By "dong-houn yoU" (Xpl017Elz), in INetCop(c). MSN & E-mail: szoahc(at)hotmail(dot)com Home: http://x82.inetcop.org