VC¿¡¼ ¿î¿µÃ¼Á¦ ¸¸µé±â °¡À̵å
(Make your own Operating System On VC++ !)
»ó¼¼Á¦¸ñ: ¿¹Á¦ ºÎÆ®¼½ÅÍ ºÐ¼® ¹× OS ºôµåÇϱâ^^
For
the advanced technology
AiRPAGE
¸ÞÀÎ >> PROJECT
¸ÞÀÎ >> OS PAGE
¸ÞÀÎ >> µ¹¾Æ°¡±â
¹¹?
¾î·Æ°Ô¸¸ ¿©°ÜÁö´ø ¿î¿µÃ¼Á¦ÀÇ º£ÀÏÀÌ ¹þ°ÜÁö°í ÀÖ½À´Ï´Ù. À̰͵µ À¯ÇàÀϱî¿ä? ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚ¶ó¸é ¾Ë°í ½Í¾îÁö°í, ±¸ÇöÇØ º¸°íÇ ¿î¿µÃ¼Á¦. ±×¼ÓÀ» µé¿©´Ùº¸°í ¿¬±¸ÇÏ¸ç ½º½º·Î Á¦ÀÛÇØ º¸´Â »çÀÌÆ®µéÀÌ °è¼Ó ´Ã°í ÀÖ½À´Ï´Ù.
Àú¿ª½Ã ±× ¸¸µé±âÀÇ ½ÃÀÛÀ» Á¶½É½º·´°Ô ¿¾î º¸·Á ÇÕ´Ï´Ù. ¿©±â-Àú±â, À̰÷-Àú°÷, ¾Õ-µÚ-¿·Áý¿¡¼ ««È÷ ¾òÀº Á¤º¸µéÀ» Åä´ë·Î(¾î¼¸é Â¥Áý±â(^^)·Î º¸ÀÏ ¼öµµ ÀÖÁö¸¸) ÇѸò ÇØº¸°íÇ ¸¶À½¿¡ ±ÛÀ» ½á º¾´Ï´Ù.
¾Æ·¡ÀÇ ³»¿ëµéÀº Á¦°¡ Á÷Á¢ ÀÛ¼ºÇÑ ºÎÆ®¼½ÅÍ ÄÚµåÀÇ °£´ÜÇÑ ¼³¸í°ú ÄÄÆÄÀÏ ¹æ¹ý ±×¸®°í x86 Protected Mode ·Î Æ÷ÆÃµÈ ¥ìC/OS-II ¼Ò½º¸¦ °¡Áö°í ºôµåÇÏ´Â ¼³¸íÀ» °¡Áö°í ÀÖ½À´Ï´Ù.
ÀÌ °Á´ Àý´ë·Î ±â¼úÀûÀÎ ³»¿ëÀÌ ¾ø½À´Ï´Ù. ¾î¼ÀÄÚµåÀÇ Áö½Ä°ú ºÎÆ®¼½ÅÍ, Ä¿³Î¿¡ °üÇÑ ¾î´ÀÁ¤µµÀÇ Áö½ÄÀ» °®Ãß¾ú´Ù´Â °¡Á¤ÇÏ¿¡ ³»¿ëÀ» ÁøÇàÇÏ°Ô µË´Ï´Ù. ´ÜÁö ¿¹Á¦·Î Á¦½ÃÇÑ Äڵ带 ÄÄÆÄÀÏ Çϰí, ½ÇÁ¦ ¿î¿µÃ¼Á¦Ã³·³ µ¿ÀÛÇÏ´Â ¸ð½ÀÀ» º¸¿©ÁÜ À¸·Î½á Visual C++ ȯ°æÇÏ¿¡¼µµ ¿î¿µÃ¼Á¦ °³¹ß ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» º¸À̱â À§ÇÔÀÔ´Ï´Ù.
¸¸¾à, ±×·¯ÇÑ °ÍµéÀÇ °³³äÀÌ ÇÊ¿äÇÏ´Ù¸é ¸ÕÀú À§ÀÇ ¸Þ´º¿¡¼ PROJECT -> OS PAGE ¿¡ ¸µÅ©µÈ ¿©·¯ ÀڷḦ Âü°í ÇϽñ⠹ٶø´Ï´Ù. ¹°·Ð ¿¹Àü¿¡ Bellona ¶ó´Â ¿î¿µÃ¼Á¦¸¦ ¸¸µå½Å ¿ÀÀçÁØ´ÔÀÇ °ÁÂ¿Í ¼ÀûÀÌ ÀÌ¿Í À¯»çÇÕ´Ï´Ù¸¸, ±× ³»¿ë¿¡´Â VC 5.0 ÀÇ È¯°æ°ú Á¶±ÝÀº º¹ÀâÇÑ ºÎÆ®¼½ÅÍ¿¡ ÀÇÇØ Ä¿³ÎÀÌ ·ÎµåµË´Ï´Ù. ³ª¸§´ë·ÎÀÇ ÀÌÀ¯°¡ ÀÖ°Ú½À´Ï´Ù¸¸, ±×¿Í´Â »ó°ü¾øÀÌ ÀÌ °Á´ ¼ø¼öÇÏ°Ô VC 6.0 ÀÇ È¯°æ¿¡¼ Ä¿³ÎÁ¦ÀÛÀÌ °¡´ÉÇÔÀ» º¸À̱â À§ÇÑ ³»¿ëÀÓÀ» ´Ù½Ã Çѹø ÁÖÁö½ÃÄÑ µå¸³´Ï´Ù.
Áغñ¹°
- ȯ°æ
Microsoft Windows¢ç 98, 2000, XP¿¡¼ Å×½ºÆ® µÇ¾ú½À´Ï´Ù.
- Tool
Borland-C++¢ç 3.0(2.0µµ µË´Ï´Ù^^) [Turbo-C¢ç 2.0 download ]
Microsoft Visual C++¢ç 6.0
Microsoft Macro Assembler¢ç 6.11 (´Ù¸¥ ¹öÀüÀº ¾ÈµË´Ï´Ù.)
NASM 0.98.36 (´Ù¸¥¹öÀüµµ ±¦ÂúÀ»Áö(?) ¸ð¸¨´Ï´Ù.^^) [NASM site link ]
- Source
¥ìC/OS-II(Port : x86 Protected Mode) [UCOS-ii(intel port) Site link ]
LestatOS(TM) Boot Sector [bootsect.asm download ]
: ÀåÁøÈ£(devilnis@nownuri.net)´Ô²²¼ °í¸¿°Ôµµ ¹ö±×¸¦ Çϳª ÁöÀûÇØ Áּ̽À´Ï´Ù. ¼öÁ¤¹öÀüÀÔ´Ï´Ù.^^
Boot Sector¸¦ µð½º±RÀÇ Á© ù¼½ÅÍ¿¡ ¿Å°ÜÁÖ´Â C ¼Ò½º [scopy.c download ]
À©µµ¿ì ȯ°æ¿¡¼ ºÎÆ® ¼½ÅÍ Á¤º¸¸¦ ÀÐ°í ½áÁÖ´Â À¯Æ¿¸®Æ¼ [GSector.exe download ]
±¸¼º
¿ì¸®°¡ ºôµåÇØº¼ Àüü ¸ñ·Ï ±¸¼ºÀº ´ëÃæ ÀÌ·¸½À´Ï´Ù.
- ¥ìC/OS-II Ä¿³Î À̹ÌÁö
- Ä¿³Î À̹ÌÁö¸¦ ·ÎµåÇÒ ºÎÆ®¼½ÅÍ
À§ÀÇ Áغñ¹°µéÀº ¸ðµÎ ¿¹Á¦·Î ´Ù·ïº¼ À§¿¡¼ ³ª¿ÇÑ ¿î¿µÃ¼Á¦¿Í ºÎÆ®¼½Å͸¦ ºôµåÇϱâ À§ÇÔÀÔ´Ï´Ù.
¥ìC/OS-II Ä¿³Î À̹ÌÁö¸¦ ºôµåÇÏ´Â ¹æ¹ýÀº UCOS-II À¥ »çÀÌÆ®ÀÇ http://www.micrium.com/intel/index.html
ÆäÀÌÁö¸¦ Âü°íÇÏ½Ã¸é µË´Ï´Ù. °Å±â¿£ Jean Louis Gareau °¡ Á¦ÀÛÇÑ ºÎÆ®¼½ÅÍ¿Í Ä¿³ÎÀ̹ÌÁö ±×¸®°í Ä¿³ÎÀ̹ÌÁö ·Î´õ ¼Ò½º¿Í ŽºÅ©
¼Ò½º°¡ ÀÖ½À´Ï´Ù. À̸¦ Âü°í·Î ÇÏ´Â ÀÌÀ¯´Â ÀåÁ¡ÀÌ Ä¿³ÎÁ¦ÀÛ ÀÛ¾÷À» Visual C ȯ°æ¿¡¼ ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù.
¥ìC/OS-II ¿¡ °üÇØ Á» ´õ ¾Ë°í ½ÍÀ¸½Ã´Ù¸é, http://www.micrium.com/ »çÀÌÆ®¸¦ ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù. ¾ÆÁÖ ¼ÒÇüÀÎ ¸®¾óŸÀÓ Ä¿³ÎÀ̸鼵µ Ź¿øÇÑ ½ºÄÉÁ층 ¾Ë°í¸®Áò°ú ¿©·¯ ½Ã½ºÅÛ¿¡ À¯¿¬ÇÏ°Ô Æ÷ÆÃµÈ ¿î¿µÃ¼Á¦ÀÔ´Ï´Ù.
::TOP
±¸Çö
ÀÚ, ±×·³ ½ÃÀÛÇÕ´Ï´Ù!
Á¦°¡ Á¦ÀÛÇÑ ºÎÆ®¼½ÅÍ´Â NYAOS ºÎÆ®¼½Å͸¦ Âü°íÇß½À´Ï´Ù.
ºÎÆ®¼½ÅÍ ¼³¸í : bootsect.asm
ºÎÆ® ¼½ÅÍ´Â BIOS ¿¡ ÀÇÇØ (¹°¸®ÁÖ¼Ò)0x7C00 ¹øÁö¿¡ ·Îµå µË´Ï´Ù. 512 BYTE ÀÇ Å©±â¸¦ °¡Á®¾ß Çϸç, ÆÄÀÏÀÇ ³¡Àº 0x55 ,0xaa ij¸¯ÅͰ¡
Æ÷ÇԵ˴ϴÙ. ±×¸®°í µð½ºÅ©ÀÇ Á© ù¹øÂ° ¼½ÅÍ¿¡ À§Ä¡½ÃŰ¸é µÇ´Âµ¥¿ä, ÀÌ¿ÕÀÌ¸é ÆÄÀϽýºÅÛÁ¤º¸¸¦ Æ÷ÇÔÇÔÀ¸·Î½á À©µµ¿ì/¸®´ª½º³ª
µµ½ºµî¿¡¼ Á¢±ÙÇÒ ¼ö ÀÖ´Â Æí¸®ÇÔÀ» ÀÌ¿ëÇØµµ µÇ°ÚÁÒ. ¹«½¼ ¸»ÀÌ³Ä Çϸé, Ä¿³Î À̹ÌÁö¸¦ ³ªÁß¿¡ ¿Ï¼ºÇØ º¸½Ã¸é ¾Æ½Ã°ÚÁö¸¸, À̹ÌÁö¸¦
ƯÁ¤ ¼½ÅÍ¿¡ À§Ä¡ ½ÃÄÑ µÎ°í ºÎÆ®·Î´õ°¡ ·ÎµåÇÏ´Â ¹æ½ÄÀº ¼Ò½º°¡ °£´ÜÇÒ ¼öµµ ÀÖÁö¸¸, ¾÷µ¥ÀÌÆ® µÈ Ä¿³ÎÀ» ¸Å¹ø ±×·¸°Ô À§Ä¡½ÃŰ´À´Ï
Â÷¶ó¸® Àû´çÇÑ ÆÄÀÏÀ̸§À¸·Î º¹»ç¸¸ ½ÃÄÑ ÁÖ´õ¶óµµ ºÎÆ®¼½ÅͰ¡ ¾Ë¾Æ¼ Ä¿³ÎÀ» ·ÎµåÇÑ´Ù¸é ¸¹ÀÌ ÆíÇÏ´Ù´Â °ÍÀ» ´À³¢½Ç °Ì´Ï´Ù.
±×·¸±â¿¡ ºÎÆ®¼½ÅÍÀÇ ¼Ò½º ùºÎºÐÀº ÆÄÀϽýºÅÛ Á¤º¸¸¦ ä¿ó´Ï´Ù.
fatOEM db "LestatOS" ; OEM
fatSectSize dw 0x200 ; Bytes per sector = 512
fatClustSize db 1 ; Sectors per cluster
fatRessect dw 1 ; # of reserved sectors
fatFatCnt db 2 ; # of fat copies
fatRootSize dw 224 ; size of root directory
fatTotalSect dw 2880 ; total # of sectors if < 32 meg
fatMedia db 0xF0 ; Media Descriptor
fatFatSize dw 9 ; Size of each FAT
fatTrackSect dw 18 ; Sectors per track
fatHeadCnt dw 2 ; number of read-write heads
fatHidenSect dd 0 ; number of hidden sectors
fatHugeSect dd 0 ; if fatTotalSect is 0 this value is
; the number of sectors
fatBootDrv db 0 ; holds drive that the fat came from
fatReserv db 0 ; not used for anything
fatBootSign db 29h ; boot signature 29h
fatVolID dd 0 ; Disk volume ID also used for temp
; sector # / # sectors to load
fatVoLabel db "LestatOS",13,10,0 ; Volume Label
fatFSType db "FAT12 " ; File System type
¹°·Ð ºÎÆ®¼½ÅͰ¡ ÇÏ´Â Á©Ã³À½ µ¿ÀÛÀº Á¡ÇÁÀÔ´Ï´Ù.
È®ÀåÀÚ°¡ COM ÀÎ ÆÄÀÏÀÇ Æ÷¸ä°ú ºñ½ÁÇÕ´Ï´Ù. Á¡ÇÁ¸¦ ³¡³»°í ÀÎÅÍ·´Æ®¸¦ µð½º¿¡ÀÌºí ½ÃŲ ÈÄ ÇöÀç ºÎÆ®µÈ µå¶óÀ̺êÀÇ Á¤º¸¸¦ ¾ò¾î
¿É´Ï´Ù. Áï, ¹ÙÀÌ¿À½º´Â DL ·¹Áö½ºÅÍ¿¡ ÇöÀç ºÎÆ®µÈ µå¶óÀ̺êÀÇ Á¤º¸¸¦ ´ã¾Æ µÓ´Ï´Ù. dl ¿¡ 0x00 ÀÌ µé¾îÀÖÀ¸¸é A µå¶óÀ̺ê,
0x80 À̸é C µå¶óÀ̺ê ÀÔ´Ï´Ù.
mov ax,0x9000 ; put stack at 0x91000
mov ss,ax
mov sp,0x1000
±×·±´ÙÀ½ À§Ã³·³ ½ºÅذø°£À» Àâ¾Æ ÁÝ´Ï´Ù. ³Ë³ËÈ÷ ¸Þ¸ð¸®ÀÇ Àú À§ÂÊÀ¸·Î ¸»ÀÌÁÒ^^
ÀÌÈÄ, Ç÷ÎÇÇ ÄÁÆ®·Ñ·¯¸¦ ÃʱâÈ Çϰí, ¿¡·¯¸é ¿¡·¯ ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÏ¸é¼ ¸®º×À» ÇѴٰųª ÇÏ´Â ·çƾÀº ¸ÕÀú ¸»¾¸µå¸° NYAOS ÀÇ
ºÎÆ®¼½ÅÍ ¼Ò½º ¼³¸íÀ» Âü°í ÇϽñ¸¿ä(^^). º»ÀÎÀÌ ¼öÁ¤/»ðÀÔÇÑ Áß¿ä ºÎºÐµéÀÇ ¼³¸íÀ» ÀÌ¾î ³ª°¡°Ú½À´Ï´Ù.^^
MOV AX,0x8000 ;80000¹øÁö·Î À̵¿...
MOV ES,AX
XOR DI,DI
MOV AX,0x07C0
MOV DS,AX
XOR SI,SI
MOV CX,0x0100
REPZ
MOVSW
JMP 0x8000:go ;0x8000:go ÀÇ À§Ä¡·Î Á¡ÇÁ
go: mov ax,0x8000
mov ds,ax
À§ÀÇ ÄÚµå´Â ÇöÀç ¸Þ¸ð¸®ÀÇ 0x07c0:0x0000 ÀÇ À§Ä¡¿¡ ÀÖ´Â ºÎÆ®¼½ÅÍ Äڵ带 ¹°¸®ÁÖ¼Ò0x80000 ¹øÁö·Î À̵¿½Ãŵ´Ï´Ù. À̵¿ÀÌ ³¡³ÈÄ
´ç¿¬È÷ ¼öÇàµÈ ÄÚµåÀÇ ´ÙÀ½À¸·Î Á¡ÇÁ¸¦ ÇØ¾ß°ÚÁÒ? ±×·¸±â¿¡ JMP 0x8000:go ¸í·ÉÀ» ³»¸³´Ï´Ù. ±×¸®°í DS ·¹Áö½ºÅ͸¦ À̵¿µÈ
¼¼±×¸ÕÆ® À§Ä¡ 0x8000 À¸·Î ¼¼Æ® ÇÕ´Ï´Ù.
ÀÌÈÄ, ·çÆ® µð·ºÅ丮ºÎÅÍ ÆÄÀÏÀ̸§À¸·Î ÁöÁ¤µÈ Ä¿³ÎÀ̹ÌÁö¸¦ °Ë»öÇϰí, ãÀ¸¸é ¹°¸®ÁÖ¼Ò0x40000 ¹øÁö¿¡ À̹ÌÁö¸¦ ·Îµå ÇÕ´Ï´Ù. Ä¿³ÎÀ̹ÌÁö
±îÁö ·ÎµåµÈ ¸Þ¸ð¸®ÀÇ ¸ð½ÀÀº ¾Æ·¡¿Í °°½À´Ï´Ù.
±×·± ´ÙÀ½ Ç÷ÎÇÇ µð½ºÅ© µå¶óÀ̺êÀÇ ¸ðÅ͸¦ ¾Æ·¡ÀÇ ÄÚµå¿Í °°ÀÌ ²ô°í,
mov al, 0x0c
mov dx, 0x03fe
out dx, al
ÁËÃÑÀûÀ¸·Î Ä¿³Î À̹ÌÁö¸¦ ´Ù½Ã ÃÖÇÏÀ§ 0x0000:0000 ¹øÁö·Î À̵¿ ½ÃŲ ÈÄ, ¹°¸®ÁÖ¼Ò 0x01000 ¹øÁö·Î Á¡ÇÁ ÇÕ´Ï´Ù.
0x1000 ¹øÁöºÎÅÍ Ä¿³ÎÀ̹ÌÁöÀÇ ½ÇÁ¦ Äڵ尡 ½ÃÀ۵DZ⠶§¹®ÀÔ´Ï´Ù. (ÄÄÆÄÀÏ µÈ Ä¿³ÎÀ̹ÌÁö¸¦ ´ýÇÁÇØ º¸½Ã¸é ¾Ð´Ï´Ù.^^)
cli
MOV AX,0x0000 ;40000¹øÁö¿¡¼ 0x0000:0000À¸·Î À̵¿...
MOV ES,AX
XOR DI,DI
MOV AX,0x4000
MOV DS,AX
XOR SI,SI
MOV CX,0x7000
REPZ
MOVSW
mov ax,0x0000 ; set segment registers and jump
mov es,ax
mov ds,ax
jmp 0x0000:0x1000
¾Æ·¡ÀÇ ±×¸²Àº ºÎÆ®¼½ÅÍ¿Í Ä¿³ÎÀ̹ÌÁö°¡ ·ÎµåµÈ ÈÄ ÀüüÀûÀΠȣÃâ ¼ø¼¸¦ º¸¿© ÁÝ´Ï´Ù. Á¦ÀÏ ¸ÕÀú ºÎÆ®¼½ÅÍ´Â Entry.asm ¿¡ ÀÇÇØ ÄÄÆÄÀÏ µÈ Entry.obj ·Î Á¡ÇÁÇÏ°Ô µÇ¸ç Entry.obj ´Â Ä¿³ÎÀÇ main ÇÔ¼ö¸¦ È£ÃâÇÏ°Ô µË´Ï´Ù.
Entry.asm ÀÌ ÇÏ´Â ÀÏÀº CPU ¸¦ º¸È£¸ðµå·Î º¯È¯ÇÔ°ú µ¿½Ã¿¡ GDT ,IDT ¸¦ ¼¼ÆÃÇÏ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. ±×ÀÛ¾÷ÀÌ ³¡³ª¸é °ð¹Ù·Î Ä¿³ÎÀÇ main ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.
½ÇÀü! (Build)
³×^^; ÀÌÁ¦ºÎÅÍ ½ÇÁ¦·Î ºÎÆ®¼½ÅÍ¿Í ¿î¿µÃ¼Á¦¸¦ ºôµåÇØ º¾½Ã´Ù. ¸ÕÀú, ºÎÆ®¼½Å͸¦ ÄÄÆÄÀÏ ÇÏ´Â ¹æ¹ýÀº ¾Æ·¡¿Í °°½À´Ï´Ù. nasm ÀÌ ´ç¿¬È÷ ¼³Ä¡µÇ¾î ÀÖ¾î¾ß °ÚÁÒ? : (bootsect.asm ÄÄÆÄÀÏ ¹æ¹ý)
ºÎÆ®¼½Å͸¦ µð½º±RÀÇ Ã¹¹øÂ° ¼½ÅÍ¿¡ ¿Å±â´Â ¹æ¹ýÀº ¸î°¡Áö°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é µµ½ºÀÇ µð¹ö°Å¿¡¼ ¾Æ·¡¿Í °°ÀÌ Çϼŵµ »ó°ü¾ø½À´Ï´Ù. : (bootsect ¸¦ µð½º±RÀÇ Ã¹¹øÂ° ¼½ÅÍ¿¡ ¿Å±â´Â ¹æ¹ý)
±×·¸Áö¸¸, Á»´õ ¸ÚÁö°Ô- ¿ì¸®¸¸ÀÇ ¿î¿µÃ¼Á¦ ÀνºÅç·¯¸¦ ¸¸µé°í ½Í´Ù¸é, ºÎÆ®¼½Å͸¦ º¹»çÇØÁÖ´Â Äڵ带 °¡Áö°í À־ ³ª»ÚÁø ¾Ê°ÚÁÒ? scopy.c ÀÇ ÄÚµå´Â ¾Æ·¡¿Í °°ÀÌ °£´ÜÇÕ´Ï´Ù.
//***************START************************
#include "bios.h"
#include "stdio.h"
void main()
{
FILE *in;
unsigned char buffer[520]; /* ¹öÆÛ¸¦ Àâ°í */
if((in = fopen("bootsect", "rb"))==NULL) /* bootsect ÆÄÀÏÀ» ¹ÙÀ̳ʸ®·Î ¿¬´ÙÀ½ */
{
printf("Error loading file\n");
exit(0);
}
fread(&buffer, 512, 1, in); /* 512¹ÙÀÌÆ®¸¦ Àаí */
while(biosdisk(3, 0, 0, 0, 1, 1, buffer)); /* µð½ºÅ©ÀÇ Ã¹¼½ÅÍ¿¡ ¾¹´Ï´Ù */
fclose(in);
}
//***************E N D************************
¾Æ·¡ÀÇ ¹æ¹ýÀ¸·Î scopy.c ¸¦ ÄÄÆÄÀÏ ÇÕ´Ï´Ù. : (scopy.c ÄÄÆÄÀÏ ¹æ¹ý)
ÄÄÆÄÀÏµÈ scopy.exe ¿Í °°Àº µð·ºÅ丮¿¡ ÄÄÆÄÀÏµÈ bootsect ÆÄÀÏÀÌ ÀÖÀ¸¸é ´ÜÁö, scopy.exe ¸¦ ½ÇÇàÇÏ´Â °Í¸¸À¸·Î µð½º±RÀÇ Ã¹¹øÂ° ¼½ÅÍ¿¡ bootsect °¡ ¿Å°ÜÁý´Ï´Ù.
±×¸®°í, Entry.asm À» ÄÄÆÄÀÏ ÇØ¾ß°ÚÁÒ? nmake °¡ ¼¼ÆÃµÇ¾î ÀÖ´Ù¸é, Entry.asm µð·ºÅ丮¿¡¼ ¾Æ·¡±×¸²°ú °°ÀÌ nmake ¸¸ ½ÇÇàÇÏ¸é µË´Ï´Ù. : (Entry.asm ÄÄÆÄÀÏ ¹æ¹ý)
¸¸¾à, ±×·¸Áö ¾Ê´Ù¸é, ¾Æ·¡ ±×¸²Ã³·³ ml.exe ÆÄÀÏÀ» Entry µð·ºÅ丮¿¡ º¹»çÇÑ ÈÄ ¿É¼Ç°ú ÇÔ²² ml.exe ¸¦ ½ÇÇàÇÕ´Ï´Ù. : (Entry.asm ÄÄÆÄÀÏ ¹æ¹ý)
ml.exe °¡ Path µÇ¾î ÀÖ´Ù¸é, Visual C ¿¡¼ MyTask.dsw ÇÁ·ÎÁ§Æ®´Â Á¦´ë·Î ÄÄÆÄÀÏÀÌ µÇ¾î MyTask.IMG ÆÄÀÏÀ» »ý¼ºÇÒ °Ì´Ï´Ù. ¸¸¾à ±×·¸Áö ¾Ê´Ù¸é, ml.exe ¸¦ MyTask µð·ºÅ丮¿¡ º¹»çÇÑ ÈÄ¿¡ F7 ۸¦ ´·¯ ºôµåÇϼ¼¿ä. (¹°·Ð! ÇÁ·ÎÁ§Æ® ¸®¼Ò½º µ“¿¡¼ os_cpu_a.asm ¸¦ ¼±ÅÃÇϰí Project -> Setting ¿¡¼ ÄÄÆÄÀÏ·¯ ÆÐ½º¸¦ ¼öÁ¤Çϼŵµ µË´Ï´Ù.)
ÀÚ, ÀÌÁ¦ ºôµå´Â ¸ðµÎ ³¡³µ½À´Ï´Ù. ºÎÆ®¼½ÅͱîÁö µð½º±R¿¡ ¿Å°å´Ù¸é, MyTask.IMG ÆÄÀϸ¸ µð½º±R¿¡ º¹»çÇØ ÁÖ¸é µË´Ï´Ù. ¸¸¾à, MyTask.Img ¶ó´Â Ä¿³ÎÀ̹ÌÁö À̸§ÀÌ ¸¶À½¿¡ ¾Èµç´Ù¸é bootsect.asm ÀÇ ¼Ò½ºÄÚµåÀÇ Á© ¾Æ·§ÁÙ ±Ùó¸¦ º¸½Ã¸é 'MyTask__IMG' ¶ó´Â µ¥ÀÌÅͰ¡ º¸Àϰ̴ϴÙ. À̺κÐÀ» 12 Ä¿¡ ¸ÂÃç¼ ¹Ù²ã ÁÖ½Ã¸é µË´Ï´Ù. Áï, Ä¿³ÎÀ̹ÌÁö¸¦ 1.IMG ¶ó´Â ÆÄÀÏ·Î ¸í¸íÇÏ°í ½Í´Ù¸é, '1_______IMG' ·Î ¹Ù²Ù½Ã¸é µË´Ï´Ù.(¿©±â¼ '_' ´Â °ø¹éÀÔ´Ï´Ù.)
ÀÌÁ¨, ¸ðµç °ÍÀÌ ÁغñµÈ µð½º±RÀ» °¡Áö°í ºÎÆÃ¸¸ ÇÏ½Ã¸é µË´Ï´Ù. ÀÚÁÖ ¼öÁ¤Çϰí, ºÎÆÃÇÏ°í ¶Ç ¿¡·¯¸¦ È®ÀÎÇÑ ÈÄ ´Ù½Ã ºÎÆÃÇÏ´Â °úÁ¤ÀÌ ³Ê¹« ¹ö°Ì½À´Ï´Ù. ±×·²¶© VMware¢ç ³ª Bochs µîÀ» »ç¿ëÇÏ½Ã¸é ÆíÇÒ °Ì´Ï´Ù.(ÀúÀÇ °æ¿ì¿£ Bochs º¸´Ü VMware¢ç °¡ Á»´õ Àß µ¿ÀÛÇÏ´Â °Í °°¾Ò½À´Ï´Ù.)
ÀÌÁ¦ ¸ôÇϳª?
^^; ÀÌÁ¦ ¸ô ÇÏ´Ù´Ï¿ä. ÀÌÁ¨ ÀڽŸ¸ÀÇ Ä¿³Î ¾Ë°í¸®ÁòÀ» °³¹ßÇÏ¿© ¿î¿µÃ¼Á¦¸¦ ¸¸µå¼Å¾ßÁÒ.(¤»...) Áï, ucos-ii.obj ÆÄÀÏÀ» Á¦°ÅÇÏ°í ±âŸ Task °ü·Ã ¼Ò½ºµéÀ» Á¦°ÅÇϰųª ¼öÁ¤Çؼ ÀڽŸ¸ÀÇ ¿î¿µÃ¼Á¦¸¦ ¸¸µå´Â °Ì´Ï´Ù. ¹°·Ð, ±âÁ¸ Ä¿³ÎÀ» ±×´ë·Î ÀÌ¿ëÇϼŵµ »ó°ü¾ø½À´Ï´Ù. ÀڽŸ¸ÀÇ UI ¸¦ °³¹ßÇÏ¿© Æ÷ÆÃÇϰí, Á» ´õ ³ª¾Æ°¡¼ ÆÄÀÏ ½Ã½ºÅÛ, ³×Æ®¿÷ ±×¸®°í »ç¿îµå °ü·Ã µå¶óÀ̹öµµ ÀÛ¼ºÇØ º¸´Â µî °¥±æÀÌ ¸Ö´ä´Ï´Ù.
À̱۷ΠÀÎÇØ ±× ¸ðµç ÀýÂ÷³ª ±æÀ» Á¶±ÝÀÌ¶óµµ º¸¾ÒÀ¸¸é ÇÏ´Â ¹Ù¶÷ÀÔ´Ï´Ù.
°ÇÅõ¸¦ º÷´Ï´Ù!
2003.09.02 À̰ǿì
::TOP
±âŸ Áú¹®&´äº¯ : [ PROJECT -> Áú¹®&´äº¯ °Ô½ÃÆÇ ]
Âü°í ÀÚ·á :
- µð½ºÅ© ºÎÆÃ À̹ÌÁö ¸¸µé±â °¡À̵å
- PC º¸È£¸ðµå·Î Æ÷ÆÃµÈ uCOS-II ¿¡ ÀÎÅÍ·´Æ® Ãß°¡ ¿¹Á¦
Âü°í »çÀÌÆ® :
- ¿ÀÀçÁØ´ÔÀÌ ÀÛ¼ºÇϽŠBellona ¿î¿µÃ¼Á¦ »çÀÌÆ®ÀÔ´Ï´Ù. http://www.bellona2.com/
- ±âŸ °ü·Ã»çÀÌÆ®´Â PROJECT -> OS PAGE ¿¡ ¿¬°áµÈ ¸µÅ©¸¦ ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.
::TOP