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