x82's Operating System kernel

PCX À̹ÌÁö ºä¾î ¹× xdbg µð¹ö°Å Ãß°¡ ¿µ»ó (2009-05-17 ver)

[2009-05-17] x82dummyos kernel¿¡ »õ·Ó°Ô Ãß°¡µÈ PCX À̹ÌÁö ºä¾î¿Í Ä¿³Î ±â¹Ý xdbg(x82's debugger) Ä¿¸Çµå¶óÀÎ µð¹ö°ÅÀÔ´Ï´Ù. µð¹ö°Å´Â ÇöÀç H/W ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¿Í S/W ºê·¹ÀÌÅ© Æ÷ÀÎÆ® ¸ðµÎ ±¸ÇöµÈ »óÅÂÀÔ´Ï´Ù. Çϳª¾¿ ±â´ÉÀ» ´Ã·Á°¥ ¿¹Á¤ÀÔ´Ï´Ù. [2009-05-18] xdbg¸¦ ÀÌ¿ëÇÑ ¼ÒÇÁÆ®¿þ¾î Å©·¢(?) Å×½ºÆ®ÀÔ´Ï´Ù. ¹°·Ð ¼ÒÇÁÆ®¿þ¾î Å©·¢Àº ¿À¹ö±¸¿ä. ¤¾¤¾ »õ·Ó°Ô Ãß°¡ÇÑ set ¸í·ÉÀ» ÅëÇØ ƯÁ¤ ·¹Áö½ºÅͳª ÁÖ¼Ò °ªÀ» º¯°æÇÒ ¼ö ÀÖ´ÂÁö ½ÃÇè ÁßÀÔ´Ï´Ù.

BMP/JPEG À̹ÌÁö ºä¾î Ãß°¡ ¿µ»ó (2009-04-19 ver)

[2009-04-19] x82dummyos kernel¿¡ À̹ÌÁö ºä¾î¸¦ Ãß°¡Çؼ­ Bochs¿¡¼­ µ¿ÀÛ½ÃÄѺýÀ´Ï´Ù. [2009-04-30] BMP À̹ÌÁö Á¿찡 ¹Ý´ë·Î µÚÁýÇû´ø ¹®Á¦Á¡À» ã¾Æ ¼öÁ¤ÇÏ¿´½À´Ï´Ù. [2009-05-03] JPG À̹ÌÁö¸¦ ÀÐÀ» ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù. ¡Ø À̹ÌÁö Ãâó´Â Á¦°¡ °³ÀÎÀûÀ¸·Î ÁÁ¾ÆÇÏ´Â ±èÇüÅ ÀÛ°¡´Ô ÀÛǰÀÓÀ» ¹àÈü´Ï´Ù.

Matrix ±â´É Ãß°¡ ¿µ»ó (2009-04-04 ver)

[2009-04-04] »õ·Ó°Ô Ãß°¡µÈ LDT callgate¿Í MATRIX È­¸éÀ» Èä³»³»º» °á°ú¹°ÀÔ´Ï´Ù.

x82OS kernel 樨毢 (2009-01-23 ver)

[2009-01-23] Youtube ´À·Á¼­ Cyworld ÂÊÀ¸·Î ¿Å°å¾î¿ä. Âü°í·Î, Å×½ºÆ® ¿µ»ó°ú ´Þ¸® 4MB MEMORY ³»¿¡¼­ µ¿ÀÛÇÕ´Ï´Ù. http://project.underattack.co.kr/x82dummyos/x82OS.avi (¿øº» µ¿¿µ»ó)

x82OS kernel ±¸Çö ±â´É

- Boot loader (16bit Real mode) - Interrupt (32bit Protected mode) - MMU paging (full 4GB user memory) - Keyboard driver (Ctrl+Alt+Del, Ctrl+C key support) - File system (FAT12 ram disk) - Floppy Driver (DMA) - User mode(ring3) soft task switch (ring3 multi-tasking) - Round-robin scheduling (System timer) - Process management (foreground/background) - System call - LDT based callgate - User mode(ring3) library - Simple shell (MS-DOS+linux shell clone) - Simple application (test, test2, matrix) - Simple games (tetris, snake) - VGA driver (32bit Graphic mode) - Bitmap(BMP) image viewer - JPEG(JPG) image viewer - PCX image viewer - Kernel based command line debugger (xdbg: x82's debugger)

x82OS kernel screenshot

[xdbg(x82's debugger) ½ÇÇà »çÁø] [À¯Àú ¸ðµå shell ½ÇÇà »çÁø] [À¯Àú ¸ðµå ¾îÇø®ÄÉÀÌ¼Ç tetris °ÔÀÓ ½ÇÇà »çÁø] [À¯Àú ¸ðµå ¾îÇø®ÄÉÀÌ¼Ç snake °ÔÀÓ ½ÇÇà »çÁø]

x82OS kernel code

ÇöÀç Pseudo code°¡ »ó´ç ºÎºÐ Æ÷ÇԵǾî ÀÖ¾î °£½ÅÈ÷ ÇØ´çÇÏ´Â OS ±â´ÉÀÌ ±¸µ¿µÇ´Â Á¤µµÀÔ´Ï´Ù. ÇнÀÀ̳ª ±³À° µîÀÇ ¿ëµµ·Î´Â ºÐ¼®Çϱâ ÁÁ°ÚÁö¸¸ Á¶±Ý ´õ Äڵ带 °¡´Ùµë´Âµ¥·Î °ø°³Çϵµ·Ï ÇϰڽÀ´Ï´Ù. (¾ðÁ¦ÂëÀÌ´Ù È®´äµå¸®±ä ¾î·Á¿ï °Í °°±¸¿ä.)

x82OS kernel °ü·Ã Àâ¼³

2003³âµµ 11¿ù, óÀ½ OS °³¹ß¿¡ µµÀüÇØº¸¾Ò½À´Ï´Ù. ´ç½Ã ¸¶¶¥ÇÏ°Ô Âü°íÇÒ¸¸ÇÑ ÀÚ·á°¡ ºÎÁ·Çؼ­ ±²ÀåÈ÷ °í»ýÇß´ø ±â¾ïÀÌ ³³´Ï´Ù. °á±¹, PhrackÀÇ ±Û(jeffOS °ü·Ã)°ú osx86 ³»ÀÇ ¹ø¿ªµÈ ÀڷḦ Âü°íÇÏ¿© ŸÀÎÀÌ °³¹ßÇÑ dummyOS¸¦ ºÐ¼®ÇÏ´Â ¼öÁØ¿¡¼­ ÇнÀÀ» Áß´ÜÇÒ ¼ö ¹Û¿¡ ¾ø¾ú½À´Ï´Ù. ±× ÀÌÈÄ 2006³â 1¿ù, ±¹³»¿¡µµ Âü°íÇÒ¸¸ÇÑ µµ¼­°¡ »ý°å½À´Ï´Ù. Ã¥À» ¹ÞÀÚ¸¶ÀÚ 3Àϸ¸¿¡ Àоî¹ö·È´ø ±â¾ïÀÌ ³³´Ï´Ù. ´ç½Ã ÇнÀÇß´ø ³»¿ëÀº ´ÙÀ½ ÆäÀÌÁö¸¦ Âü°íÇϼ¼¿ä. ¾ÆÁÖ ±âÃÊÀûÀÎ ³»¿ëÀ» ÇнÀÇÏ°íµµ ÀÌÇØ°¡ ¾ÈµÇ´Â ºÎºÐµéÀÌ ¸¹¾Ò½À´Ï´Ù. ¶§¹®¿¡ ÀúÀÚ°¡ ÀÛ¼ºÇß´ø ASM Äڵ带 ¼öÁ¤Çذ¡¸é¼­ ÀÌÇØÇÏ´Â ¼öÁØÀ¸·Î ÇнÀÇß¾ú½À´Ï´Ù. 2008³â 10¿ù, C·Î OS¸¦ °³¹ßÇØº¸±â·Î ¸¶À½¸Ô°í Çϳª¾¿ ´Ù½Ã ½ÃÀÛÇÏ¿´½À´Ï´Ù. 2006³â 1¿ùÀÇ ±Û¿¡¼­µµ ¼³¸íÇßµíÀÌ º»¾÷°ú´Â ÀüÇô ´Ù¸¥ º°°³ÀÇ ÀÏÀ̾ú±â ¶§¹®¿¡ ÇÏ·ç¿¡ 2½Ã°£ Á¤µµ¸¸ ÅõÀÚÇϰí OS¸¦ °³¹ßÇϱâ¶õ ½±Áö ¾Ê¾Ò½À´Ï´Ù. À̹ø OS °³¹ßÀ» ÅëÇØ ÀÌ·ç°íÀÚ ÇÏ´Â ¹Ù·¥ÀÌ Çϳª ÀÖ¾ú´Ù¸é, ŸÀÎÀÌ °³¹ßÇÑ ÄÚµå µµ¿ò¾øÀÌ ÀÚüÀûÀÎ °³¹ßÇÑ Äڵ常À¸·Î OS¸¦ µ¹·Áº¸°íÀÚ ÇÏ´Â °ÍÀ̾ú½À´Ï´Ù. ´öºÐ¿¡ 2009³â 1¿ù, Pseudo code°¡ ³­¹«(?)ÇÏ´Â µ¶Ã¢ÀûÀÎ OS¸¦ Çϳª °³¹ßÇÏ°Ô µÇ¾ú½À´Ï´Ù. Á¦ ¸Ó¸®°¡ ±×¸® ÁÁÀº ÆíÀº ¾Æ´Ï±â ¶§¹®¿¡ ÀÌ·¸°Ô¶óµµ µÎ¼­¾øÀÌ ±â·ÏÇØµÎ´Â °ÍÀÌ Â÷Èĸ¦ À§ÇØ ÁÁÀ» °Í °°¾Æ ±â·ÏÇØµÓ´Ï´Ù.

x82OS kernel °³¹ß °úÁ¤

2008-09-29: Linux ³»¿¡¼­ gcc·Î Ä¿³ÎÀ» ÀÛ¼ºÇϱâ À§ÇØ 16bit Real mode¿¡¼­ ¼öÇàµÇ´Â ºÎÆ®½ºÆ®·¦ Äڵ带 GASMÀ¸·Î ÀÛ¼ºÇغ¸¾Ò´Ù. ¹°·Ð, 2006³â 1¿ù¿¡ ÀÚüÀûÀ¸·Î ÀÛ¼ºÇß´ø NASM ºÎÆ®½ºÆ®·¦ Äڵ带 GASMÀ¸·Î Æ÷ÆÃÇØº» °ÍÀÌ´Ù. ±×·°Àú·° Àß µ¿ÀÛÇÏ´Â °ÍÀ» È®ÀÎÇß´Ù. 2008-10-01: 32ºñÆ®·Î ³Ñ¾î¿ÀÀÚ¸¶ÀÚ ÀÎÅÍ·´Æ®°¡ °É¸®¸é¼­ Ä¿³ÎÀÌ Á×¾î¹ö¸°´Ù. Áï, 16bit Real mode¿¡¼­´Â BIOS ÀÎÅÍ·´Æ®¸¦ »ç¿ëÇϱ⠶§¹®¿¡ º° ¹®Á¦°¡ ¾ø¾úÁö¸¸ ´ëÃ¥¾øÀÌ º¸È£¸ðµå·Î ³Ñ¾î¿À°í ³ª´Ï »ý°¢ÇÏÁöµµ ¸øÇß´ø ¹®Á¦°¡ ¹ß»ýÇÑ´Ù. °á±¹ jmp ÀÌÈÄ º¸È£¸ðµå·Î ³Ñ¾î¿À±â Á÷Àü cli¸¦ ½ÇÇàÇÏ¿© ÀϽÃÀûÀ¸·Î ÀÎÅÍ·´Æ®¸¦ ¸·¾Æ ÇØ°áÇß´Ù. ÀÎÅÍ·´Æ® Å×ÀÌºí ±¸¼ºÀÌ ½Ã±ÞÈ÷ ÇÊ¿äÇÑ »óÅÂÀÎ °Í °°´Ù. 2008-10-02: ¹«½ÄÇÑ ¹æ¹ýÀ¸·Î ÀÎÅÍ·´Æ® ¼­ºñ½º ·çƾ(ISR)°ú IRQ º¤ÅÍ Å×À̺íÀ» Ãß°¡ÇÏ¿´´Ù. IDT¸¦ ¼³Á¤ÇÏ°í ³ª´Ï sti·Î ÀÎÅÍ·´Æ®¸¦ Ȱ¼ºÈ­Çصµ ÀÌ»ó¾øÀÌ µ¿ÀÛÇÑ´Ù. 2008-10-03: ÀÔÃâ·Â ¹öÆÛ°¡ á´ÂÁö 8042 Æ÷Æ® »óŸ¦ ½ÃÇèÇÏ´Â ·çƾÀ» »©¹ö¸®°í ´Ü¼øÈ÷ A20 °ÔÀÌÆ®¸¦ ÄÑ´Â Äڵ带 ÀÛ¼ºÇß´Ù. 2008-10-04: ½ÇÇàÇϰíÀÚ ÇÏ´Â Ä¿³ÎÀ» ¸Þ¸ð¸®¿¡ ¸ÊÇÎÇÏÁö ¾ÊÀº »óÅ¿¡¼­ ¿©·¯°¡Áö ½ÇÇèÀ» ÇÏ´Ï Ä¿³ÎÀÌ Á׾´Â °ÍÀ» °æÇèÇß´Ù. ¶ÇÇÑ, ½Ç¼ö·Î Text À§Ä¡¸¦ À߸ø ÁöÁ¤Çؼ­ ¹ß»ýÇÏ´Â ¹®Á¦µµ ±²ÀåÇÑ °ñÄ¡²¨¸®¿´°í ÄÄÆÄÀÏµÈ Ä¿³ÎÀ» 1¼½ÅÍ(512byte)¾¿ ·ÎµåÇϱ⠶§¹®¿¡ ´ÜÀ§¸¦ ¸ÂÃçÁà¾ß µ¿ÀÛÇÏ´Â ¹ø°Å·Î¿òµµ ÀÖ¾ú´Ù. 2008-10-05: ¿ª½Ã³ª ¹«½ÄÇÑ ¹æ¹ýÀ¸·Î ÆäÀÌ¡ 󸮸¦ ½ÃµµÇغ¸¾Ò´Ù. Á¤¼öÇü 1024byte ¹è¿­À» µÎ °³ ¸¸µé°í, °¢°¢ ÆäÀÌÁö µð·ºÅ丮, Å×À̺íÀ» ±¸¼ºÇغ¸¾Ò´Ù. C·Î óÀ½ ±¸ÇöÇØº¸´Â ÆäÀÌ¡À̾ú±â ¶§¹®¿¡ 0xFFFFFFFF ÁÖ¼Ò¸¦ Á¢±ÙÇØº¸°í ½Í¾îÁ³´Ù. µð·ºÅ丮¿Í Å×À̺í 10ºñÆ®¸¦ 4·Î ³ª´©¾î¼­ ¹è¿­ÀÇ À妽º¸¦ ±¸ÇÒ ¼ö ÀÖ¾ú´Ù. Á¢±ÙÇϰíÀÚ ÇÏ´Â ÁÖ¼Ò°¡ 0xFFFFFFFFÀ» °æ¿ì ÆäÀÌÁö µð·ºÅ丮´Â 0xFFF¸¦ 4·Î ³ª´©¸é 10ºñÆ®ÀÇ µð·ºÅ丮 À§Ä¡°¡ Á¤ÇØÁö°í. ÆäÀÌÁö Å×ÀÌºíµµ ¸¶Âù°¡Áö·Î °¡¿îµ¥ 0xFFF 4·Î ³ª´©¾î ±× À§Ä¡¸¦ ãÀ» ¼ö ÀÖ´Ù. (10ºñÆ®) ³ª¸ÓÁö ¹°¸®ÁÖ¼Ò ¿ÀÇÁ¼ÂÀº 0xFFF ±×´ë·Î »ç¿ëÇÑ´Ù. (12ºñÆ®) Àß »ìÆìº¸¸é, °¡»ó ÁÖ¼Ò ³¡ÀÚ¸® 4¸¶´Ù ¹è¿­ÀÌ º¯ÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î 0xc00~0xc03±îÁø [0x300=768] À§Ä¡À̰í, 0xc04~0xc07±îÁø [0x301=769] À§Ä¡, 0xc08~0xc0b±îÁø [0x302=770] À§Ä¡°¡ µÈ´Ù. page[0xc00/4=0x300=768][0x0FF/4=0x03f= 63] [+ 0xfff] (0xc00fffff) page[0xc04/4=0x301=769][0x4FF/4=0x13f=319] [+ 0xfff] (0xc04fffff) (µð·ºÅ丮 1024 x Å×À̺íÀº 1024 * 4 = 4¸Þ°¡) 0x c08 0x8ff 0xfff page[0xc08/4=0x302=770][0x8FF/4=0x23f=575] [+ 0xfff] (0xc08fffff) À§ÀÇ °æ¿ì, 0xc08fffff´Â ÆäÀÌÁö µð·ºÅ丮 770¹øÂ° ¹è¿­À̸ç, ÆäÀÌÁö Å×À̺í 575¹øÂ° ¹è¿­¿¡ ÀÖ´Â ¹°¸® ÁÖ¼Ò¿¡ 0xfff¸¦ ´õÇÏ¸é ±¸ÇÒ ¼ö ÀÖ´Ù. 2008-10-06: 1¸Þ°¡ ÀÌÇÏ ¿µ¿ªÀº ±âÁ¸ ºÎÆ®·Î´õ°¡ »ç¿ë ÁßÀ̹ǷÎ, ±×´ë·Î ¸ÊÇÎÇØ¾ß Á¤»óÀûÀ¸·Î µ¿ÀÛÇÑ´Ù. ±×·¡¼­ ÆäÀÌÁö Å×À̺í 256°³ Á¤µµ¸¦ »ç¿ëÇØ¼­ 1¸Þ°¡ ÀÌÇÏ ¿µ¿ªÀÇ ÁÖ¼Ò¸¦ access °¡´ÉÇϵµ·Ï ÀúÁ¤ÇØÁØ´Ù. (ÀÌ°É ¾ÈÇØÁÖ¸é ÆäÀÌ¡ÀÌ Àû¿ëµÈ Ä¿³ÎÀº °è¼Ó Á״´Ù.) Ä¿³Î ¸ÞÀÎÀ¸·Î µé¾î°¡±â Á÷Àü, ½ºÅà Æ÷ÀÎÅÍ ¿ª½Ã ÆäÀÌ¡ÀÌ Àû¿ëµÈ ÁÖ¼Ò¸¦ ³Ö¾îÁÖ¾î¾ß ÇÑ´Ù. (±×·¸Áö ¾ÊÀ¸¸é ¿¹»óÄ¡ ¸øÇÑ ¿À·ùµéÀÌ ¸¶±¸ ¹ß»ýÇÑ´Ù.) 2008-10-16: ŸÀ̸Ó, Űº¸µå ÀÎÅÍ·´Æ®¸¦ ±¸ÇöÇß´Ù. out/inÀ» ÅëÇÑ Æ÷Æ® Á¦¾î·Î ŸÀÌ¸Ó¿Í Å°º¸µå ÀÔ·ÂÀ» ±¸ÇöÇÒ ¼ö ÀÖ´Ù. ŸÀÌ¸Ó ÀÎÅÍ·´Æ®¸¦ ÅëÇØ ÇöÀç ¼­¹ö ½Ã°£À» ¾ò¾î¿Ã ¼ö ÀÖµµ·Ï ÇÏ¿´°í, Űº¸µå Å×À̺íÀ» ±¸¼ºÇغ¸¾Ò´Ù. (¿ª½Ã³ª ½ºÆå ¼­·ù¸¸À» °¡Áö°í ±¸ÇöÇϱ⿡´Â ¹«¸®°¡ ÀÖ´Ù.) 2008-10-18: ÇöÀç, ºÎÆ®½ºÆ®·¦ -> IDT ¼³Á¤ & ÆäÀÌ¡ ¼³Á¤ -> ÆäÀÌ¡ Ä¿³Î·Î ³Ñ¾î°¡´Â ¹æ½ÄÀ» ¹ö¸®°í, ºÎÆ®½ºÆ®·¦ -> ÆäÀÌ¡ ¼³Á¤ -> ÆäÀÌ¡ Ä¿³Î ³»¿¡¼­ IDT ¼³Á¤ ¹× ÄÜ¼Ö Á¦¾î µîÀ» ÇÒ ¼ö ÀÖµµ·Ï Äڵ带 ¼öÁ¤ÇÏ¿´´Ù. 2008-10-21: µð½ºÅ©´Â ½Ç¸°´õ¿Í Çìµå, ¼½ÅÍ·Î ±¸ºÐÇÑ´Ù. ÇÑ ¼½ÅÍ´Â 512byteÀ̸ç 1¼½ÅͺÎÅÍ ½ÃÀÛÇϰí 18¼½ÅͰ¡ ÇÑ Æ®·¢À» ÀÌ·é´Ù. Æ®·¢Àº ÇÑ ¸é´ç 80°³ Á¸ÀçÇÑ´Ù. ±×¸®°í Çì´õ´Â ¸éÀÌ µÎ °³´Ù. Áï, 512x18(Æ®·¢ÇѰ³´ÜÀ§) x 80(ÇѸ鿡 80°³) x 2(Çìµå´Â µÎ ¸éÀ̹ǷÎ) = 1.44MB°¡ µÈ´Ù. Àд ¼ø¼­´ë·Î ¼³¸íÇØº¸ÀÚ¸é, Çìµå°¡ 0, 0¹øÂ° ½Ç¸°´õ¿¡¼­ 18°³ÀÇ ¼½Å͸¦ ´Ù ÀÐÀ¸¸é Çìµå°¡ 1, 0¹øÂ° ½Ç¸°´õ¿¡¼­ 18°³ÀÇ ¼½Å͸¦ ´õ ÀÐÀ» ¼ö ÀÖ´Ù. ÀÌ ¿ª½Ã ´Ù ÀÐÀ¸¸é, Çìµå°¡ 0, 1¹øÂ° ½Ç¸°´õ¿¡¼­ 18°³ÀÇ ¼½Å͸¦ ´õ ÀÐÀ» ¼ö ÀÖ°í, ÀÌ ¿ª½Ã ´Ù ÀÐÀ¸¸é, Çìµå°¡ 1, 1¹øÂ° ½Ç¸°´õ¿¡¼­ 18°³ÀÇ ¼½Å͸¦ ´õ ÀÐÀ» ¼ö ÀÖ´Ù. (ÃÖ´ë 72°³ ¼½ÅͱîÁö ÀÐÀ» ¼ö ÀÖÀ½. (18 x 4)) 2008-10-24: FAT12¿¡ ´ëÇÑ ÇнÀ, ÆÄÀÏ ¸ñ·ÏÀ» ÀÐÀ» ¶§´Â ÃÖ»óÀ§ ·çÆ® µð·ºÅ丮ÀÎ 0x2600 À§Ä¡¿¡¼­ °¢ ÆÄÀÏ Á¤º¸¸¦ Àоî¿Ã ¼ö ÀÖ´Ù. µð·ºÅ丮ÀÇ °æ¿ì, 0x3e00 + ¼½Å͹øÈ£ x 512·Î °è»êÇØÁÖ¸é µð·ºÅ丮 ³»ÀÇ °¢ ÆÄÀÏ Á¤º¸¸¦ Àоî¿Ã ¼ö ÀÖ´Ù. ÆÄÀÏ ³»¿ëÀ» ÀÐÀ» ¶§´Â ¹Ýµå½Ã 512 À§Ä¡(2¼½ÅÍ ½ÃÀÛºÎ)¿¡ ÀÖ´Â FAT12 ¼½ÅÍ ¹è¿­ÀÇ ¾ÐÃàÀ» Ç®°í ³­ÈÄ ¼ø¼­´ë·Î Àоî¿Í¾ß ÇÑ´Ù. ¸¸¾à 2¼½ÅͺÎÅÍ ½ÃÀÛÇÑ´Ù°í °¡Á¤ÇÒ ¶§, 1 2 3 4 5 n FF0 FFF 003 004 005 ... FFF Àß »ìÆìº¸¸é, 1¹ø FF0´Â ¹«½ÃÇϰí, (MBR ºÎÆ®¼½ÅÍÀ̹ǷÎ) 2¹ø¿¡ FFF°¡ µé¾îÀִµ¥ ÀÌ´Â ÆÄÀÏÀÌ ½ÃÀÛÇÏ´Â À§Ä¡À̱⠶§¹®ÀÌ´Ù. ÃÖ»óÀ§ ·çÆ® µð·ºÅ丮 ³»¿¡¼­ 2¹øÀÇ ¼½Å͸¦ »ç¿ë ÁßÀÎ °æ¿ì FFF·Î ¸¶Å©µÇ¾î ÀÖ´Ù. ¿¹¸¦ µé¾î ÃÖ»óÀ§ ·çÆ® µð·ºÅ丮 ³»¿¡¼­ 2¹ø°ú 5¹ø ¼½Å͸¦ ¾µ °æ¿ì ´ÙÀ½°ú °°À» °ÍÀÌ´Ù. 1 2 3 4 5 6 FF0 FFF 003 004 FFF 006 ... FFF°¡ ³ªÅ¸³ª¸é ÆÄÀÏÀÇ ³¡À¸·Î ÀνÄÇÏ¸é µÈ´Ù. 2008-10-29: 16ºñÆ® reboot ¹æ¹ý°ú 32ºñÆ® reboot ¹æ¹ýÀ» ã¾Ò´Ù. ... ¿¬¸» ¾÷¹«ÀÇ ¾Ð¹ÚÀ¸·Î ÀÎÇÑ °ø¹é±â ... 2009-01-05: ¿À·§µ¿¾È ¾ÈÀâ°í ÀÖ´Ù°¡ ´Ù½Ã ÀâÀ¸·Á´Ï °í¹®ÀÌ µû·Î ¾ø´Ù. ÀÎÅÍ·´Æ® Å×ÀÌºí ³»¿¡ ¼ÒÇÁÆ®¿þ¾î ÀÎÅÍ·´Æ®¸¦ Ãß°¡ÇÑ ÈÄ, ½Ã½ºÅÛ ÄÝÀ» ±¸ÇöÇØº¸¾Ò´Ù. ¾ÆÁ÷ Ä¿³Î ¸ðµå¿¡¼­ È£ÃâÇÏ´Â °ÍÀ̶ó ±×·±Áö Àß µ¿ÀÛÇÑ´Ù. 2009-01-07: ÇÔ¼öµé Á¾·ùº°·Î ÀüºÎ »õ·Î Á¤·ÄÇß´Ù. ¶ÇÇÑ, Űº¸µå Çڵ鷯¸¦ ´Ù½Ã »õ·Î ±¸ÇöÇß´Ù. (°¢Á¾ Ư¼öŰ ÀÎ½Ä °¡´ÉÇϵµ·Ï) 2009-01-08: Åׯ®¸®½º¸¦ Æ÷ÆÃÇϱâ À§ÇØ ½Ã½ºÅÛ ÄݵéÀ» ±¸ÇöÇÏ¿´´Ù. Win32 API·Î ÀÛ¼ºµÈ Äڵ带 Linux·Î ¿Å°Ü³õ°í À̸¦ ´Ù½Ã OS·Î Æ÷ÆÃÇß´Ù. ½ºÄÚ¾î, ·¹º§¾÷, ¼Óµµ Áõ°¡ ±â´ÉÀ» Ãß°¡Çغ¸¾Ò´Ù. (time(), rand(), srand(), gotoxy(), puts(), usleep() ÇÔ¼ö Ãß°¡) 2009-01-09: ŽºÅ© ½ºÀ§ÄªÀ» Ãß°¡ÇÏ¿´´Ù. ¿ª½Ã³ª ¿¹»ó´ë·Î ¾È µ¹¾Æ°£´Ù. ´ÊÀº ¹ã »ðÁú ³¡¿¡ TSS µð½ºÅ©¸³ÅÍ¿¡ 1byte¸¦ À߸ø ±â¼úÇØ¼­ ¹ß»ýÇÑ GP ¿¡·¯¶ó´Â »ç½ÇÀ» È®ÀÎÇß´Ù. 2009-01-10: À¯Àú ¸ðµå·Î Á¡ÇÁ ÈÄ, ÀÎÅÍ·´Æ® ½Ã ¿À·ù°¡ ¹ß»ýÇß´Ù. ¿ª½Ã³ª ´ÊÀº ¹ã »ðÁú ³¡¿¡ °¢ Çڵ鷯¿¡ Ä¿³Î µ¥ÀÌÅÍ ¼¼±×¸ÕÆ® ¼¿·ºÅÍ·Î ds,es,fs,gs¸¦ ÃʱâÈ­ ½ÃÄÑÁÖ´Â Äڵ尡 ºüÁ®¼­ ¹ß»ýÇÑ ¹®Á¦¶ó´Â °ÍÀ» ã¾Æ³Â´Ù. °Ô´Ù°¡ ½Ã½ºÅÛ ÄÝ ±¸Çö ÈÄ ½Ã½ºÅÛ ÄÝ·Î shell() ÇÔ¼ö¸¦ È£ÃâÇÏ´Ï ¸í·ÉÀÌ ¾È ¸ÔÇû´Ù. »ðÁú ³¡¿¡ ÀÎÅÍ·´Æ® µµÁß ´Ù¸¥ ÀÎÅÍ·´Æ®°¡ ¾È °É¸°´Ù´Â Áß¿äÇÑ »ç½ÇÀ» »©¸Ô°í ÀÖÀ½À» ±ú´Ý°Ô µÇ¾ú´Ù. 2009-01-11: ÄݰÔÀÌÆ®¸¦ ±¸ÇöÇØ¼­ shell() ÇÔ¼ö¸¦ È£ÃâÇÏ´Ï ring0 ±ÇÇÑÀ¸·Î È£ÃâµÈ´Ù. ´Ù¸¸, ¸î °¡Áö ¹®Á¦Á¡À» ¹ß°ßÇÏ¿© ÀÌ·¯ÇÑ ¼öÇà ¹æ½Ä ÀÚü¸¦ Áß´ÜÇß´Ù. ¼ÒÇÁÆ® ŽºÅ© ½ºÀ§ÄªÀ» ÁöÇâÇϱ⠶§¹®¿¡ TSS¸¦ ÅëÇØ Ä¿³Î ½ºÅà À§Ä¡¸¦ Á¦°ø¹Þµµ·Ï ±¸¼ºÇسõ°í ½ÇÁúÀûÀÎ ·çƾÀº °¢ ÇÁ·Î¼¼½ºº° ·¹Áö½ºÅÍ ¿£Æ®¸®¸¦ »ç¿ëÇϵµ·Ï ±¸¼ºÇÏ¿´´Ù. ³ªÁß¿¡ ÇÁ·Î¼¼½º Á¤º¸ ±¸Á¶Ã¼¶û ¿¬µ¿½Ãų ¿¹Á¤ÀÌ´Ù. 2009-01-12: À¯Àú¸ðµå¿¡¼­ ½©À» ½ÇÇàÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. ½Ã½ºÅÛ ÄݵéÀ» ±¸ÇöÇÑ ÈÄ, À¯Àú¿ë ÆäÀÌÁö Å×À̺íÀ» µû·Î ¸¶·ÃÇÏ¿© ÆäÀÌ¡ÀÌ Àû¿ëµÈ 0x80000000 ÁÖ¼Ò¿¡ shell() ÇÔ¼ö¸¦ ·ÎµùÇÏ°í ½ÇÇàÇÒ ¼ö ÀÖ°ÔµÈ °ÍÀÌ´Ù. reg_info() ÇÔ¼ö¸¦ ºÙ¿© È®ÀÎÇØº¸¸é, cs,ds °¢°¢ 0x2b, 0x33ÀÎ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. 2009-01-13: À¯Àú¸ðµå Åׯ®¸®½º°¡ °¡´ÉÇϵµ·Ï ¼öÁ¤Çß´Ù. À̷νá, Åׯ®¸®½º °ÔÀÓ µµÁß¿¡µµ ŽºÅ© ½ºÀ§ÄªÀÌ °¡´ÉÇÏ°Ô µÇ¾ú´Ù. 2009-01-14: °¢ ÇÁ·Î¼¼½º º°·Î cr3 ·¹Áö½ºÅ͸¦ µû·Î µÎ¾î ŽºÅ© ½ºÀ§ÄªÀÌ ÀÌ·ç¾îÁú ¶§¸¶´Ù ÆäÀÌÁö µð·ºÅ丮¸¦ ±³Ã¼Çϵµ·Ï Àû¿ë½ÃÄѺôÙ. ÀÌ·Î½á °¢ À¯Àú ¾îÇø®ÄÉÀ̼Ǹ¶´Ù µ¿ÀÏÇÑ °¡»ó ÁÖ¼Ò¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. (TEXT & DATA: 0x80000000 STACK: 0x80010000) 2009-01-15: ÇöÀç, À¯Àú ¸ðµå ÇÁ·Î¼¼½º 2°³·Î Á¤»óÀûÀΠŽºÅ© ½ºÀ§ÄªÀÌ ÀÌ·ç¾îÁö°í ÀÖ°í À¯Àú ¸ðµå ³»¿¡¼­ °¢ ½Ã½ºÅÛ ÄÝ¿¡ ÀÎÀÚ¸¦ ³Ö°Å³ª ¿øÇÏ´Â °ªÀ» ¸®ÅϹ޴ °ÍÀÌ °¡´ÉÇØÁ³´Ù. 2009-01-16: ÇÁ·Î¼¼½º Á¤º¸ ±¸Á¶Ã¼¸¦ ÀÛ¼ºÇÑ ÈÄ, ŽºÅ© »ý¼º ÇÔ¼öÀÎ create_process()¿Í À¯Àú ¸ðµå ÇÁ·Î±×·¥À» ·ÎµùÇϱâ À§ÇÑ ÆäÀÌÁö »ý¼º ÇÔ¼ö make_new_page()¸¦ »õ·Ó°Ô ÀÛ¼ºÇÏ¿´´Ù. ÀÌ·Î½á µ¿ÀûÀ¸·Î »õ·Î¿î À¯Àú ¸ðµå ÇÁ·Î¼¼½º¸¦ »ý¼ºÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. 2009-01-17: »ý¼ºµÈ À¯Àú ¸ðµå ÇÁ·Î¼¼½º¸¦ °ü¸®Çϱâ À§ÇÑ ps ¸í·ÉÀ» Ãß°¡Çß´Ù. ¶ÇÇÑ, ¾Õ¼­ ±¸ÇöµÈ ÆäÀÌÁö Ãß°¡ ÇÔ¼ö¿Í ÇÁ·Î¼¼½º »ý¼º ÇÔ¼ö¿¡ file_loadmm() ÇÔ¼ö¸¦ Ãß°¡ÇÏ¿© ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ÆÄÀÏÀ» ÀÐ¾î ¸Þ¸ð¸®¿¡ ·Îµå ÈÄ ½ÇÇàÇÒ ¼ö ÀÖ´Â ½ÇÇà ÆÄÀÏ ·Îµù ±â´ÉÀÌ ±¸ÇöµÇ¾ú´Ù. 2009-01-18: ÇÁ·Î¼¼½º¸¦ Á¾·á½Ãų ¼ö ÀÖ´Â kill ¸í·ÉÀ» Ãß°¡ÇÏ¿´´Ù. ÀÌ·Î½á ¸Å¿ì ±âÃÊÀûÀÎ process °ü¸®°¡ °¡´ÉÇØÁ³´Ù. 2009-01-19: snake¶ó´Â °ÔÀÓÀ» Æ÷ÆÃÇØºÃ´Ù. Űº¸µå Ű °ªÀÌ char ÇüÀÌ ¾Æ´Ñ intÇüÀ¸·Î µÇ¾î ¹ß»ýÇÒ ¼ö ÀÖ´Â ÀáÀçÀû ¿À·ù¸¦ ¼öÁ¤ÇÏ¿´´Ù. gotoxy() ÇÔ¼ö¿Í puts() ÇÔ¼ö¸¦ Á¶ÇÕÇÑ gotoputs() ÇÔ¼ö¸¦ Ãß°¡Çß´Ù. 2009-01-20: »ç¿ëÀÚ ¾îÇø®ÄÉÀÌ¼Ç ÂÊ¿¡ ¸¹Àº ¼öÁ¤ÀÌ ÀÌ·ç¾îÁ³´Ù. °¢ ½Ã½ºÅÛ ÄÝ, ¶óÀ̺귯¸®, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î ³ª´µ¾îÁ³´Ù. 2009-01-21: ÆäÀÌ¡ Àû¿ë ÀÌÈÄ ¸Þ¸ð¸® ±¸Á¶¸¦ ¸ðµÎ º¯°æÇÏ¿´´Ù. (PDE, PTE À§Ä¡) 0x100000: main (kernel+user shell) page directory (size:0x1000) 0x101000~ user page directory (size:0x1000) ... 0x160000: kernel code page table (size:0x1000) 0x161000: boot code page table (size:0x1000) 0x162000: kernel stack page table (size:0x1000) 0x163000: user shell page table (size:0x1000) 0x164000~ user page table (size:0x1000) ... 0x200000: user program memory (size:0x10000) 0x210000~ user program memory (size:0x10000) ´öºÐ¿¡ ÇÁ·Î¼¼½º ¼ö½Ê°³¸¦ ÇѲ¨¹ø¿¡ µ¹·Áµµ ¹®Á¦¾øÀÌ ±¸µ¿ °¡´ÉÇØÁ³´Ù. 2009-01-22: background, foreground °³³äÀ» Àû¿ëÇÏ¿´´Ù. »ç¿ëÀÚ ¾îÇø®ÄÉÀ̼ÇÀ» load ¸í·ÉÀ¸·Î ½ÇÇàÇϸé foreground·Î µ¿ÀÛÇϸç, back ¸í·ÉÀ¸·Î ½ÇÇàÇϸé background·Î µ¿ÀÛÇÑ´Ù. ¸Å¿ì ±âÃÊÀûÀÎ pseudo code·Î ±¸ÇöµÈ »óÅ·νá, foreground load ¸í·ÉÀº »õ·Î¿î ÇÁ·Î±×·¥À» ½ÇÇà ½Ã ÇöÀç shell ŽºÅ©¸¦ ¸ØÃá ÈÄ ¼öÇàÇϸç, background back ¸í·ÉÀº »õ·Î¿î ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶§ ŽºÅ© »óÅ º¯°æ ¾øÀÌ Å½ºÅ© ¸®½ºÆ®¿¡ Ãß°¡ÇÏ¿© µ¿½Ã ¼öÇàµÈ´Ù. (TODO: ¾ÕÀ¸·Î ÇÁ·Î¼¼½º ¿ì¼±¼øÀ§¿¡ µû¸¥ ÀÔÃâ·Â Á¦¾î°¡ ÇÊ¿äÇÒ µí ÇÏ´Ù.) 2009-01-23: Ctrl+C ±â´É ۸¦ Ãß°¡Çß´Ù. Ctrl+C ¸í·ÉÀÌ µé¾î¿À¸é ÇöÀç ŽºÅ© ÇÁ·Î¼¼½º¸¦ °­Á¦ Á¾·á½ÃŲ´Ù. ´Ü, ÇöÀç ÇÁ·Î¼¼½º°¡ pid 0ÀÇ shell ŽºÅ©ÀÎ °æ¿ì¿¡´Â Á¾·á½ÃŰÁö ¾Ê´Â´Ù. (Áï, pid 0ÀÎ shell ³»¿¡¼­´Â Ctrl+C ±â´É ۰¡ ¾È ¸ÔÈù´Ù.) ... °ø¹é±â ... 2009-02-23: µåµð¾î ¹®Á¦°¡ ¸¹¾Ò´ø ÄݰÔÀÌÆ®ÀÇ ¼öÁ¤À» ¿Ï·áÇß´Ù. 1¿ù 11ÀÏ ¹ß°ßÇß´ø ¹®Á¦¸¦ ÇØ°áÇϸ鼭 Ä¿³Î ³»¿¡ reg_info() ÇÔ¼ö¸¦ È£ÃâÇϸé ring0°¡ µÇ¾ú´Ù°¡ È£ÃâÀÌ ³¡³ª°í ³ª¸é ring3·Î µ¹¾Æ¿Â´Ù. ¿ÀŸ Çϳª°¡ ¸ðµç ¿ÀÀÛµ¿ÀÇ ¿øÀÎÀ̾ú´Ù´Ï.. far return ÇØÁÖ¸é ÇØ°áµÇ´Â °£´ÜÇÑ ÀÏÀ̾ú´Ù. 2009-02-25: ÄݰÔÀÌÆ®¸¦ GDT ³»¿¡ »ý¼ºÇÏ´Ù º¸´Ï Â÷ÈÄ ¼öÁ¤ ½Ã ºÒÆíÇÒ °Í °°¾Æ LDT¸¦ Ãß°¡Çغ¸¾Ò´Ù. ¸ÕÀú 0x70000 ÂëÀ» ´ëÃæ LDT À§Ä¡·Î Á¤ÇÏ¿© ÄݰÔÀÌÆ®¸¦ ¿Ã·ÁµÎ°í LLDT ¸í·ÉÀ¸·Î Ãß°¡µÈ ¼¼±×¸ÕÆ® ¼¿·ºÅ͸¦ ÁöÁ¤ÇØÁÖ´Ï ±×·°Àú·° Àß µ¿ÀÛÇß´Ù. ring0°¡ µÇ¾ú´Ù°¡ ring3·Î µ¹¾Æ¿À´Â °ÍÀ» È®ÀÎÇϱâ À§ÇØ Ä¿³Î ³»ÀÇ reg_info() ÇÔ¼ö°¡ ¾Æ´Ñ À¯Àú ¶óÀ̺귯¸® ³»¿¡ reg_info() ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ¼öÁ¤Çß´Ù. Á¤¸» º°°Å ¾Æ´ÏÁö¸¸ ¿©·¯ dummyOS Äڵ带 µÚÁ®º» ¹Ù.. LDT ³»¿¡¼­ callgate¸¦ ±¸ÇöÇØ³õÀº °ÍÀ» ãÀ» ¼ö°¡ ¾ø¾î¼­ »ý°¢º¸´Ù ¸¹ÀÌ °í»ýÇÑ °Í °°´Ù. ... °ø¹é±â ... 2009-03-31: kkamagui´ÔÀÌ ±¸ÇöÇØ³õÀ¸½Å matrix È­¸éÀ» º¸ÀÚ¸¶ÀÚ ÆÅ feelÀÌ ²ÈÇô¹ö·È´Ù. ¹«¾ð°¡ ¿µ°¨À» ¹Þ¾Ò´Ù°í ÇØ¾ßÇϳª.. ÀÛ¾÷ °á°ú¹°À» º¸´Ï ³Ê¹« ºÎ·¯¿ö¼­ ³ªµµ µû¶ó ¸¸µé¾î¾ß°Ú´Ù°í »ý°¢¸¸Çß´Ù. (ÀÌ·± µû¶óÀïÀÌ.. ±Ùµ¥ ¸ÚÁø°É ¾î¼·ª ¤¾¤¾) ÇÏÁö¸¸.. ¾÷¹«ÀÇ ¾Ð¹ÚÀ¸·Î ÀÎÇØ À̹ø ÁÖ¿¡´Â ÀÛ¾÷ÀÌ Èûµé²¨ °°°í ÁÖ¸» Âë¿¡³ª ÀÛ¾÷À» ½ÃµµÇÒ ¼ö ÀÖÀ» °Í °°´Ù. 2009-04-04: ¿¹Àü¿¡ ±¸±Û¸µÀ» ÅëÇØ ¾ò¾îµÐ matrix ¼Ò½º¸¦ linux·Î Æ÷ÆÃÇß´ø ÀûÀÌ ÀÖ¾î ¿Å±â´Â ÀÛ¾÷Àº ±×¸® ¿À·¡ ¾È°É·È´Ù. È­¸é »ö»óÀ» Á¶Á¤ÇÏ´Â color_set() ½Ã½ºÅÛÄÝÀ» Ãß°¡Çعö·È´Ù. (ÀÌ·¸°Ô ¸· Ãß°¡Çعö¸®¸é ³ªÁß¿¡ °í»ýÇϴµ¥...) ... °ø¹é±â ... 2009-04-11: Ç÷ÎÇÇ °ü·Ã °¢Á¾ ÇÔ¼ö Ãß°¡(floppy.h, floppy.c), Ç÷ÎÇÇ ÀÎÅÍ·´Æ® Ãß°¡ ¿Ï·á. ÇöÀç´Â ºÎÆÃ ½Ã boot À̹ÌÁö ³»¿¡¼­ ¸ÕÀú ÆäÀÌ¡ °ü·Ã ÇÔ¼ö¿Í kernel.bin À̹ÌÁö¸¦ ·ÎµåÇÑ ÈÄ ÆÄÀÏ ½Ã½ºÅÛ Àüü¸¦ ¸Þ¸ð¸®¿¡ º¹»çÇØ³õ´Â ¹«½ÄÇÑ ¹æ½Ä »ç¿ë. (fs_load_memory ÇÔ¼ö) 16ºñÆ® BIOS ÀÎÅÍ·´Æ®¸¦ ÀÌ¿ëÇÏ¿© ISO·Î ºÎÆÃ °¡´ÉÇÑ °Í È®ÀÎ. 2009-04-12: ÆÄÀÏ Á¢±ÙÇÒ ¶§ È®ÀåÀÚ ºÎºÐÀ» °í·ÁÇϵµ·Ï ¼öÁ¤Çß´Ù. 2009-04-13: À̹ÌÁö ºä¾î¸¦ ¸¸µé±â À§ÇÑ BMP Æ÷¸Ë(Çì´õ¶û ÆÈ·¹Æ® ±¸Á¶ ÀÌÇØ) ¹× ±×·¡ÇÈ ¸ðµå Àüȯ °úÁ¤¿¡ ´ëÇØ¼­ ÇнÀ. BMP Çì´õ¸¦ Åä´ë·Î ÆÈ·¹Æ®¸¦ ¾ò¾î¿Ã ¼ö ÀÖ°í (color_used * RGB_COLOR) ±×¸®°í ºñÆ®¸Ê Çì´õ¿¡ ÆÈ·¹Æ® Å©±â¸¦ ´õÇÑ ÀÌÈÄ¿¡ µ¥ÀÌÅ͸¦ ¾ò¾î¿Ã ¼ö ÀÖ¾ú´Ù. ¸ÕÀú linux¿¡¼­ Å×½ºÆ®¿ë BMP ºä¾î¸¦ ±¸ÇöÇØºÃ´Ù. ±× ÀÌÈÄ¿¡ OS·Î Æ÷ÆÃÇÒ ¶§ »ðÁúÀ» Á» Çߴµ¥.. ÆÈ·¹Æ®¶û µ¥ÀÌÅÍ À§Ä¡¸¦ À߸ø °è»êÇÏ´Ï Á¦´ë·Î µÈ À̹ÌÁö°¡ ¶ã¸® ¸¸¹«Çß´Ù. °á±¹ ÀÌ ¹®Á¦ ÀâÀ¸·Á°í TEXT ¸ðµå·Î ºÎÆÃÇØ¼­ BMP Çì´õ¶û RGB ÆÈ·¹Æ®, µ¥ÀÌÅ͸¦ È­¸é¿¡ HEX °ªÀ¸·Î Âï¾î°¡¸é¼­ Æ÷ÀÎÅÍ ¹®Á¦¶ó´Â °ÍÀ» Àâ°Ô µÆ´Ù. GUI ¸ðµå Àüȯ °úÁ¤Àº ¿ì¼± 16ºñÆ® ¸®¾ó¸ðµå¿¡¼­ INT 0x10 ÀÎÅÍ·´Æ®¸¦ ÅëÇØ °¡´ÉÇϱ⠶§¹®¿¡ ºñ±³Àû °£´ÜÇÑ ÆíÀÌÁö¸¸ 32ºñÆ® º¸È£¸ðµå·Î µé¾î¿À¸é Àüȯ °úÁ¤ÀÌ Á» º¹ÀâÇØÁø´Ù. ÀÏ´Ü 16ºñÆ® ¸®¾ó¸ðµå¿¡¼­ 320x240 Àâ°í BMP Ãâ·Â Å×½ºÆ®¸¦ ÇØº¸¾Ò´Ù. Àß ¶á´Ù. 2009-04-15: È®½ÇÈ÷ Ä«¿ÍÀÌ È÷µ¥¹Ì¾¾ÀÇ OSó·³ 16ºñÆ® ¸®¾ó¸ðµå¿¡¼­ GUI ¸ðµå·Î ³Ñ¾î°¡¸é ±¸ÇöÇϱ⠰£´ÜÇÏ´Ù. ÇÏÁö¸¸ TEXT ¸ðµå¸¦ °í¼öÇÏ´Â ÀÔÀå¿¡¼­ 32ºñÆ® º¸È£¸ðµå ÁøÀÔ ÈÄ GUI ¸ðµå·Î ÀüȯÇÏ´Â ¹æ¹ýÀÌ ´õ ÈǸ¢Çغ¸¿´´Ù. ¿©·¯ ÀڷḦ µÚÁö°í »ìÆìº» °á°ú Chobits OS ³»¿¡ ±¸ÇöµÈ GUI ¸ðµå º¯È¯ ÄÚµå¿Í Chris Giese¾¾ÀÇ Äڵ尡 Á÷Á¢ÀûÀÎ ±¸Çö¿¡ Å« µµ¿òÀÌ µÇ¾ú´Ù. ´õ ÀÚ¼¼ÇÑ ÄÚµå´Â ´ÙÀ½ ÆäÀÌÁö ¸µÅ©¸¦ Âü°íÇϱ⠹ٶõ´Ù. (»ç½Ç, v86 ¸ðµå°¡ ±¸ÇöµÇ¾î ÀÖÁö ¾ÊÀº °ü°è·Î ÀÌ ¹æ¹ý ¹Û¿¡ »ç¿ëÇÒ ¼ö ¾ø´Â »óȲÀÌ´Ù.) TEXT ¸ðµå¿¡¼­ BMP À̹ÌÁö ÆÄÀÏ Çϳª Àо·Á°í ÀÌ °í»ýÀ» ÇÏ´Ù´Ï.. BMP À̹ÌÁö¸¦ Àбâ À§ÇÑ view ¸í·ÉÀ» Ãß°¡ÇÏ¿© 256 colorÀÇ ºñÆ®¸Ê ÆÄÀÏÀÌ ÀÖÀ¸¸é 320x240·Î GUI ¸ðµå¸¦ º¯°æÇÑ ÈÄ ÇØ´ç À̹ÌÁö¸¦ È­¸é¿¡ »Ñ¸®°í ۸¦ Çϳª ÀԷ¹ÞÀ¸¸é ´Ù½Ã TEXT ¸ðµå·Î µ¹¾Æ¿Àµµ·Ï Çß´Ù. BMP ³»¿¡ ÆÈ·¹Æ®·Î »ö»óÀ» ¼³Á¤Çϱâ Àü¿¡ ¸ÕÀú TEXT ¸ðµå¿¡¼­ »ç¿ë ÁßÀÌ´ø ÆÈ·¹Æ®¸¦ ¹é¾÷ÇØ³õ¾Æ¾ß Á¤»óÀûÀÎ TEXT ¸ðµå·Î µ¹¾Æ¿Ã ¼ö ÀÖ´Ù. - VGA µå¶óÀ̹ö ÀÛ¼º¿¡ µµ¿òÀÌ µÇ´Â ÆäÀÌÁö ¸µÅ© - ½ºÆåÀ» º¸°íµµ Àß ¸ð¸£°ÚÀ¸¸é Âü°íÇÒ¸¸ÇÑ ÆäÀÌÁö ¸µÅ© ... °ø¹é±â ... 2009-05-03: JPEG µðÄÚµù ¿£ÁøÀ» Æ÷ÆÃÇÏ·Á°í º¸´Ï ¾Ë°í¸®ÁòÀÌ Ä¿³Î¿¡ ´ëÀûÇÒ¸¸Å­ º¹ÀâÇØº¸¿© »ì¦ ±äÀåÇß¾ú´Ù. ÇÏÁö¸¸ ÀǿܷΠ¸î ½Ã°£¸¸¿¡ ½±°Ô ³¡³µ´Ù. (ÀÌ¹Ì Å°¿ÍÀÌ È÷µ¥¹Ì¾¾°¡ JPEG µðÄÚ´õ¸¦ ÀÚ½ÅÀÇ OS¿¡ Àß Æ÷ÆÃÇØµÐ °ü°è·Î Å« µµ¿òÀ» ¾òÀ» ¼ö ÀÖ¾ú´Ù. ´Ù¸¸ ³»°¡ ÀÛ¼ºÇÑ BMP/JPEG ºä¾î´Â ±× ºÐÀÇ ÄÚµå¿Í´Â ´Þ¸® 100% C·Î¸¸ µÇ¾î ÀÖ´Ù. Ä«¿ÍÀÌ È÷µ¥¹Ì¾¾ÀÇ JPEG ÄÚµå ¿ª½Ã nikq¾¾ÀÇ JPEG Äڵ带 ÀÚ½ÅÀÇ OS¿¡ ¸Â°Ô ¼öÁ¤ ÈÄ Æ÷ÆÃÇÑ °ÍÀÌ´Ù.) ±âº»ÀûÀ¸·Î JPEG Çì´õ¿Í ÀÌ·ÐÀûÀÎ ³»ºÎ ¾Ë°í¸®ÁòÀ» ¾Ë°í ÀÖÀ¸¸é Æ÷ÆÃÇϴµ¥ µµ¿òÀÌ µÇ¸®¶ó ÆÇ´ÜµÈ´Ù. - JPEG wikipedia ÆäÀÌÁö ¸µÅ© 2009-05-09: PCX ºä¾î ±¸ÇöÀ» À§ÇØ Æ÷¸ËÀ» ÇнÀÇß´Ù. PCX ¿ª½Ã BMP ±¸Çö¸¸Å­ ½¬¿î ÆíÀÌ´Ù. ´öºÐ¿¡ ƯÀ¯ÀÇ ¾ÐÃà ¾Ë°í¸®Áòµµ ÇнÀÇÏ°Ô µÇ¾ú°í À̹ÌÁö Ä÷¸®Æ¼ ¶ÇÇÑ BMP¿¡ ¶³¾îÁöÁö ¾Ê´Â´Ù. ´Ü»öÀÇ °æ¿ì ¾ÐÃà·üÀÌ ²Ï ³ô¾Æ¼­ ¾²±â ÁÁÀº °Í °°´Ù. ÇнÀÇÑ ½ºÆåÀ» Åä´ë·Î Äڵ带 ±¸ÇöÇÏ´ø µµÁß ¹®Á¦ ¹ß°ß. ¾Ë°íº¸´Ï ÆÈ·¹Æ® ÀúÀå ¹æ½ÄÀÇ ¹®Á¦¿´´Ù. ´Ù¸¸ ÀÌ·¸°Ô º°°Å ¾Æ´Ñ ¹®Á¦¸¦ ãÀ¸·Á°í ²Ï ¸¹Àº ½Ã°£À» ¼ÒºñÇÑ ³¡¿¡ Áß´ëÇÑ(?) °á½ÉÀ» ÇÏ°Ô µÇ¾ú´Ù. ¿À´ÃºÎÅÍ µð¹ö°Å °³¹ßÇÑ´Ù! 2009-05-10: °£¸¸¿¡ DR ·¹Áö½ºÅ͵éÀ» ÇнÀ. ÃÖ±Ù Phrack 65-8À» ÅëÇØ ²Ï ¾Ë·ÁÁø °ÍÀ¸·Î ¾Æ´Âµ¥ °ú°Å, ³í¹® ¿¬±¸ ÁÖÁ¦¸¦ ÁغñÇÏ´ø Áß ÀÌ¿Í ¸Å¿ì Èí»çÇÑ ÈÄÅ· ¹æ¹ýÀ» »ý°¢Çس¾ú´Ù. ¹°·Ð Phrack ±ÛÀ» º¸°í ÁÂÀýÇßÁö¸¸. H/W¿¡¼­ Áö¿øÇØÁÖ´Â ºê·¹ÀÌÅ© Æ÷ÀÎÆ®(INT 1)´Â µ¥ÀÌÅÍ¿¡ Æ®¸®°Å¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÀåÁ¡ÀÌ ÀÖ´Ù. ÇÏÁö¸¸ DR0ºÎÅÍ DR3±îÁö ¹Û¿¡ »ç¿ëÇÏÁö ¸øÇϹǷΠ4°³ ºê·¹ÀÌÅ© Æ÷ÀÎÆ® ¹Û¿¡ »ç¿ëÇÏÁö ¸øÇÏ´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ºÐ¼® ³¡¿¡ ½ÇÁ¦ ±¸µ¿µÇ´Â Å×½ºÆ® Äڵ带 ±¸ÇöÇØº¸¾Ò´Ù. ºê·¹ÀÌÅ© Æ÷ÀÎÆ®´Â Àß °É¸°´Ù. ±×·¯³ª! ¸í·É ÀÔ·ÂÀÌ ¾ÈµÈ´Ù. ±× ÀÌÀ¯´Â ÀÎÅÍ·´Æ® µµÁß ÀÎÅÍ·´Æ®°¡ ¾È°É¸®±â ¶§¹®Àε¥ eflags ·¹Áö½ºÅÍ¿¡ IF¸¦ Ȱ¼ºÈ­½ÃŰ´Â ²Ç¼ö¸¦ ¹ßÈÖÇÏ¿© ÇØ°áÇß´Ù. µð¹ö°Å À̸§À» »ý°¢Çغ¸¾Ò´Âµ¥ ´Ü¼ø ¹«½ÄÇÏ°Ô x82's debuggerÀÎ xdbg·Î Á¤Çß´Ù. À̰Å, À߸¸ ¸¸µé¸é OS Ä¿³Î µð¹ö±ë¿¡ ²Ï Å« µµ¿òÀÌ µÇ°Ú´Ù. 2009-05-14: ÆäÀÌÁö ÆúÆ® °ü·ÃÇØ¼­ Çڵ鷯¸¦ »õ·Î ÀÛ¼º. µð¹ö°Å¿¡¼­ ÆäÀÌÁö ÆúÆ® °ü·Ã ¾×¼ÇÀ» Àâ±â À§ÇØ ¹Ì¸® ÁغñÇϰí ÀÖ´Â ÀÛ¾÷ÀÌ´Ù. ¹®Á¦´Â Ä¿³Î ÄÚµå °ü·Ã ÆäÀÌÁö Å×À̺íÀÇ ¹ÌÈ®º¸·Î ÀÎÇØ Ä¿³Î ¹ÙÀ̳ʸ®°¡ ¸Þ¸ð¸®¿¡ Á¦´ë·Î ·ÎµåµÇÁö ¾ÊÀº °æ¿ì ¶Ç´Â, Ä¿³Î ½ºÅà °ø°£ÀÌ È®º¸µÇÁö ¾ÊÀº °æ¿ì IDT ¼³Á¤ Àü¿¡ ¹ß»ýÇÏ´Â ¹®Á¦À̹ǷΠÆäÀÌÁö ÆúÆ® Çڵ鷯ÀÇ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â ¹®Á¦Á¡ÀÌ ÀÖ´Ù. (°á·Ð: ¿À·ù ¾øÀÌ Àß Â¥¾ßÇÑ´Ù. -_-;;) 2009-05-15: ´Ù½Ã À̾ S/W ¹æ½ÄÀ¸·Î Æ®¸®°Å¸¦ ¼³Á¤ÇÏ´Â µð¹ö°Å¿¡ ´ëÇØ ÇнÀÇß´Ù. °Ë»ö ´É·ÂÀÌ ¶Ù¾î³ªÁö ¸øÇؼ­ÀÎÁö µð¹ö°Å ±¸Çö¿¡ °üÇÑ ÀڷḦ ã±â°¡ ³Ê¹« Èûµé¾ú´Ù. (Áö³­¹ø LDT ±â¹Ý ÄݰÔÀÌÆ® ±¸Çö ¶§µµ ±×·¨¾ú´Âµ¥..) µð¹ö°Å ÇüÅ´ ÀÌÀü¿¡ ¾î´À Á¤µµ ¸¸µé¾îµ×±â ¶§¹®¿¡ S/W ¹æ½ÄÀÇ µð¹ö±ë ±â´ÉÀ» »õ·Î Ãß°¡Çغ¸¾Ò´Ù. ÀÌ ³à¼®Àº INT 3 ¸í·ÉÀÎ 0xcc ÄÚµå 1byte¸¦ µð¹ö±ëÇÒ ÀνºÆ®·°¼Ç¿¡ ³Ö¾îÁÖ´Â ÇüÅ·Πµ¿ÀÛÇÑ´Ù. (INT 3 Çڵ鷯·Î ÁøÀÔÇÏ°í ³ª¸é, ¿ø·¡ ÄÚµå·Î º¹¿øÇØÁØ ÈÄ, ¾ÕÀ¸·Î º¹±ÍÇÒ eip ·¹Áö½ºÅÍ ¿ª½Ã -1 À§Ä¡·Î º¹¿øÇØ¾ß ÇÑ´Ù.) ÀÌ ¶§¹®¿¡ ½ÇÇàÇÒ ¸í·É Äڵ常 Æ®¸®°Å¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ÇÏÁö¸¸ ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¿¡ Á¦¾àÀÌ ¾ø´Â ÀåÁ¡ÀÌ ÀÖ´Ù. ÀÏ´Ü ³» Ä¿³Î¿¡¼­´Â 8°³¸¸ ¼³Á¤ÇÒ ¼ö ÀÖ°Ô ÇØµ×´Ù. ±× ÀÌÀ¯´Â DR ·¹Áö½ºÅ͵éÀ̶û ÀνºÆ®·°¼Ç Æ®¸®°Å, ¹é¾÷ ÄÚµå °ªµîÀ» PCB¿¡ ÀúÀåÇϵµ·Ï ±¸ÇöÇߴµ¥ ÀÌ ³à¼®µéÀÌ ±âº» ŽºÅ© °¹¼ö¸¸Å­ ¿¹¾àµÇ´Ù º¸´Ï ³Ê¹« ¸¹Àº °ø°£ÀÌ ³¶ºñµÇ¾î ÀÏ´ÜÀº ±×·¸°Ô °áÁ¤Áö¾ú´Ù. ±¸µ¿½ÃÄѺ» °á°ú, Å×½ºÆ® ÄÚµåÀÓ¿¡µµ ±×·°Àú·° Àß µ¹¾Æ°£´Ù. 2009-05-16: ´ëÃæ °³¹ßÇÑ µð¹ö°Å¿¡ ¾öû³ª°Ô ¸¹Àº ¹ö±×°¡ Á¸ÀçÇÑ´Ù´Â »ç½ÇÀ» ¾Ë°ÔµÈ °Ç ±×¸® ¿À·¡°É¸®Áö ¾Ê¾Ò´Ù. -_- µ¿ÀÛÇÏ´Â ¸ÅÄ¿´ÏÁò¿¡´Â Å©°Ô ¹®Á¦°¡ ¾ø¾úÀ¸³ª µð¹ö°Å ³»ºÎ¿¡ ¸í·ÉÀ̳ª ±¸¼º ÇüÅÂÀÇ ¹®Á¦°¡ ½É°¢Çß´Ù. °õ°õÈ÷ »ý°¢ÇÏ´ø Áß À¯¿ëÇÏ°Ô ¾²°í ÀÖ´Â gdbÀÇ ±¸¼º ÇüŸ¦ º¥Ä¡¸¶Å·(?)Çϱâ·Î °áÁ¤. ¹°·Ð ±â´É¸¸ °°°Ô ±¸ÇöÇÏ´Â °ÍÀÌ´Ù. ¸ÕÀú µð¹ö°Å¸¦ ÅëÇØ ÇÁ·Î¼¼½º¸¦ ½ÃÀÛÇÏ´Â °æ¿ì eflags¿¡ TF¸¦ ¼¼ÆÃÇØ¼­ INT 1 Çڵ鷯·Î ÁøÀÔÇÏ°Ô ÇÑ ´ÙÀ½ µð¹ö°Å·Î µé¾î¿À¸é S/W ¹æ½ÄÀÇ ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ ¼³Á¤Çϵµ·Ï µð¹ö±ë ±¸¼º ÇüŸ¦ º¯°æÇß´Ù. (eflags¿¡ TF¸¦ ¼¼ÆÃÇÏ´Â ÇàÀ§´Â À¯Àú ÄÚµå »Ó ¾Æ´Ï¶ó Çڵ鷯 ÄÚµå±îÁö ÁË´Ù ºê·¹ÀÌÅ© Æ÷ÀÎÆ®ÇϹǷΠÁÖÀÇÇØ¼­ ÄÚµùÇØÁà¾ß ÇÑ´Ù.) °¢ ¸í·É¾îµéÀ» »õ·Î ±¸¼ºÇß´Ù. continue ¸í·É ½Ã, eflags¿¡ TF°¡ ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì Á¦°ÅÇÏ¿© ¸Å¹ø ¸í·É¸¶´Ù ºê·¹ÀÌÅ© Æ÷ÀÎÆ®°¡ µÇÁö ¾Êµµ·Ï ÇÏ¿´°í, ¹Ý´ë·Î next³ª step ¸í·ÉÀÇ °æ¿ì¿¡´Â eflagsÀÇ TF¸¦ Ç×»ó 1·Î ¼¼ÆÃÇÑ´Ù. clear¿Í quit ¸í·É ÄÚµå´Â µ¿ÀÏÇÏ°Ô Æ®¸®°ÅµéÀ» ÃʱâÈ­ÇÏ´Â ³»¿ëµé·Î ±¸¼ºµÇ¾î ÀÖÀ¸³ª quit ÇßÀ» ¶§¸¸ TF ¼³Á¤À» Á¦°ÅÇϰí ÇÁ·Î¼¼½º°¡ Á¾·áµÇµµ·Ï ±¸¼ºÇÏ¿´´Ù. 2009-05-17: µð¹ö°Å¿¡ ¸í·É¾î¸¦ °è¼Ó Ãß°¡ ÁßÀÌ´Ù. ÇöÀç set ¸í·Éµµ ±¸ÇöµÆ´Ù. ·¹Áö½ºÅÍ¿¡ °ªÀ» ³Ö°Å³ª ƯÁ¤ ÁÖ¼Ò¿¡ ¿øÇÏ´Â °ªÀ» ³ÖÀ» ¼ö ÀÖ°Ô µÆ´Ù. ¾ÆÁ÷ µð½º¾î¼Àºí·¯°¡ °³¹ßµÇ¾î ÀÖÁö ¾ÊÀº °ü°è·Î °³¹ß ¼­¹öÀÇ objdump ÅøÀ» ÀÌ¿ë ÁßÀÌ´Ù. ³ªÁß¿¡ ½Ã°£³ª¸é µð½º¾î¼Àºí·¯µµ °³¹ßÇØ¾ß°Ú´Ù. ... ¾÷¹« ¾Ð¹ÚÀ¸·Î ÀÎÇÑ °ø¹é±â°¡ ±æ¾îÁö°í ÀÖ½À´Ï´Ù. ...

±¹³» ¹«ÇÑ»ðÁú MANIA

»ðÁú ¸Å´Ï¾Æ¶ó´Â Ç¥ÇöÀÌ ¾î¿ï¸± °Í °°¾Æ ¸¶·ÃÇØº¸¾Ò½À´Ï´Ù. ¸Ó¸´ ¼Ó¿¡ ÀÖ´Â ÀÌ·ÐÀ» Á÷Á¢ Àû¿ëÇϴµ¥ ¼º°øÇϽŠºÐµéÀÔ´Ï´Ù. ÇÁ·Î±×·¡¸ÓÀÇ µÎ³ú¸¦ ÀڱؽÃŰ´Â À庻ÀεéÀÇ È¨ÆäÀÌÁöÀÎ ¸¸Å­ ÇѹøÂë ¹æ¹®ÇØº¸´Â °ÍÀÌ ÁÁÀ» °Í °°½À´Ï´Ù. - kkamagui´ÔÀÇ KKAMA OS:
http://kkamagui.tistory.com/ - ¿©¸®´ÔÀÇ Chobits OS: http://www.zap.pe.kr - barrios´ÔÀÇ ºÎ¸®ºÎ¸®ÀÚ¿¡¸ù OS: http://barriosstory.blogspot.com/ - bro´ÔÀÇ miniOS, usysOS(gaiacore): http://neri.cafe24.com/ - gumman´ÔÀÇ AiRPOS: http://airpage.org/~gunman/ - ¿ÀÀçÁØ´ÔÀÇ B2OS: http://www.bellona2.com/ - ³ªÁ¤È£´ÔÀÇ 80x86¿ë kernel: http://njh1983.tistory.com/ - ±è±â¿À´ÔÀÇ Calcium OS: http://caoskernel.org/ - edward´ÔÀÇ osx86: http://osx86.org/ ÆäÀÌÁö Á¶È¸ ¼ö: 4147 -- By "dong-hoon yoU" (Xpl017Elz), in INetCop(c). MSN & E-mail: szoahc(at)hotmail(dot)com Home: http://x82.inetcop.org