ÀÓº£µðµå ½Ã½ºÅÛ ¿£Áö´Ï¾î¸¦ À§ÇÑ ¸®´ª½º Ä¿³Î ºÐ¼®

³²»ó±Ô

http://ruby.medison.co.kr/~halite
¼±ÀÓ ¿¬±¸¿ø
(ÁÖ)¸Þµð½¼
ÃÊÀ½ÆÄ ¿¬±¸¼Ò

halite (at) medison.com

$Date: 2002/05/21 01:10:08 $

ÀÌ ¹®¼­´Â ¸®´ª½º Ä¿³ÎÀ» ÀÓº£µðµå ½Ã½ºÅÛ¿¡ Æ÷ÆÃÇÏ·Á´Â ¿£Áö´Ï¾îµéÀ» À§ÇÑ ±âº» Áö½Ä ½ÀµæÀ» À§ÇØ ¸¸µé¾îÁ³´Ù. ¸®´ª½º Ä¿³Î ÀÚüÀÇ ¿ø·ÐÀûÀÎ °Í º¸´Ù´Â ÀÓº£µðµå ½Ã½ºÅÛ¿¡ ¸®´ª½º Ä¿³ÎÀ» Æ÷ÆÃÇÒ ¶§ ¿£Áö´Ï¾î°¡ ¸®´ª½º Ä¿³Î¿¡ ½±°Ô Á¢±ÙÇϱâ À§ÇÑ Á¤º¸³ª ȤÀº ¹æ¹ýÀ» Á¦°øÇÏ´Â °ÍÀÌ ¸ñÀûÀÌ´Ù. ±×·¯¹Ç·Î OS¿¡ ´ëÇÑ ÀÌ·Ð º¸´Ù´Â OS°¡ ¸¸µé¾îÁö´Â ¹æ¹ýÀ̳ª ºÎÆÃµÇ´Â ¼ø¼­ ¸Þ¸ð¸®¿¡ ÀûÀçµÇ°í ½ÇÇàµÇ´Â ¼ø¼­ µî¿¡ ´ëÇØ ±â¼úÇÏ°í ´õºÒ¾î Ä¿³ÎÀ» ¸¸µé±â À§ÇØ ÇÊ¿äÇÑ µµ±¸µéÀÇ »ç¿ë¹ý¿¡ ´ëÇØ ¾Ë¾Æº»´Ù.

¿ø¹®Àº http://ruby.medison.co.kr/~halite ¿¡ÀÖ°í °¡Àå ¸ÕÀú ¾÷µ¥ÀÌÆ®µÉ °ÍÀÌ´Ù.

Ʋ¸° ³»¿ëÀÌ ÀÖÀ» ¼öµµ ÀÖ´Ù. ÀÌ·± °Í¿¡ ´ëÇØ¼± À¸·Î ¿¬¶ô ¹Ù¶õ´Ù.

$Revision: 1.13 $

Â÷·Ê
1. ¸®´ª½º Ä¿³Î ÄÄÆÄÀÏÇϱâ
1.1. ¸®´ª½º ÀϹÝ
1.1.1. ¿Ö ¸®´ª½ºÀΰ¡?
1.1.2. ¸®´ª½º ¼Ò½º µð·ºÅ丮 ±¸Á¶
1.2. LXR
1.3. ¼Ò½º ÄÚµå ¾ò±â
1.4. ¼Ò½º ÄÚµå Ç®±â
1.5. ÄÄÆÄÀÏ Áغñ
1.6. Ä¿³Î ¼³Á¤
1.7. Ä¿³Î ÄÄÆÄÀÏ
1.8. Ä¿³Î Å×½ºÆ® ¹× ¼³Ä¡
2. Makefile ºÐ¼®
2.1. ºÎÆÃ °úÁ¤ÀÇ ÀÌÇØ[1]
2.2. Ä¿³Î À̹ÌÁö ÆÄÀÏÀÇ ±¸Á¶
2.2.1. Ä¿³ÎÀÇ ºÎÆÃ
2.2.2. zimage¿Í bzImageÀÇ Â÷ÀÌ
2.3. bzimage°¡ ¸¸µé¾îÁö´Â °úÁ¤ ÃßÀû-Makefile ºÐ¼®
2.3.1. $(topDIR)/Makefile
2.3.2. $(topDIR)/arch/i386/Makefile
2.3.3. $(topDIR)/arch/i386/boot/Makefile
2.3.4. $(topDIR)/arch/i386/boot/compressed/Makefile
2.3.5. $(topDIR)/arch/i386/boot/tools/build.c
2.4. bzImage°¡ ¸¸µé¾îÁö´Â °úÁ¤ ÃßÀû-Log ºÐ¼®
2.4.1. make bzImage ¼ø¼­ Á¤¸®
2.4.2. Log
2.5. ´Ü°èº° ÀÚ¼¼ÇÑ ºÐ¼®
2.5.1. -Ttext 0x0ÀÇ ÀǹÌ
2.5.2. ºÐ¼®
3. Å©·Î½º ÄÄÆÄÀÏ·¯ ¸¸µé±â
3.1. Å©·Î½º?
3.2. ÅøÃ¼ÀÎ
3.2.1. ¹è°æ
3.2.2. ¹Ì¸® ¸¸µé¾îÁø ÅøÃ¼ÀÎ
3.2.3. ÅøÃ¼ÀÎ ¸¸µé±â
4. ARM ¸®´ª½º
4.1. ARM ÇÁ·Î¼¼¼­ MMU(Memory Management Unit)
4.1.1. °³¿ä
4.1.1.1. TLB
4.1.1.2. ¸Þ¸ð¸® Á¢±Ù
4.1.1.3. º¯È¯ Å×À̺í
4.1.1.4. µµ¸ÞÀÎ
4.1.2. º¯È¯ ÀýÂ÷
4.1.3. º¯È¯ Å×ÀÌºí º£À̽º
4.1.4. 1·¹º§ Àбâ
4.1.5. 1·¹º§ µð½ºÅ©¸³ÅÍ
4.1.6. ¼½¼Ç µð½ºÅ©¸³ÅÍ¿Í ¼½¼Ç º¯È¯
4.1.7. ÆäÀÌÁö Å×ÀÌºí µð½ºÅ©¸³ÅÍ
4.1.8. 2·¹º§ µð½ºÅ©¸³ÅÍ
4.1.9. Å« ÆäÀÌÁö º¯È¯
4.1.10. ÀÛÀº ÆäÀÌÁö º¯È¯
4.1.11. ij½Ã¿Í ¾²±â ¹öÆÛ Á¦¾î
4.1.12. Á¢±Ù ±ÇÇÑ
4.2. Assabet º¸µå¿ë Ä¿³Î ÄÄÆÄÀÏ
4.3. ARM ¸®´ª½º Makefile ºÐ¼®
4.3.1. $(TOPDIR)/arch/arm/Makefile
4.3.2. $(TOPDIR)/arch/arm/vmlinux.lds
4.3.3. $(TOPDIR)/arch/arm/boot/compressed/vmlinux.lds
4.3.4. Log ºÐ¼®
4.4. ¼Ò½º ºÐ¼®
4.4.1. arch/arm/boot/compressed/head.S
4.4.2. arch/arm/kernel/head-armv.S
5. ¸®´ª½º Ä¿³Î ºÎÆÃ
5.1. Ä¿³Î ½ÃÀÛ
5.2. lock_kernel()
5.2.1. LockÀÌ ¿Ö ÇÊ¿äÇÏÁö?
5.2.2. Lock - ±âÃÊÀû ¼³¸í
5.2.3. i386, ARMÀÇ ½ºÇɶô
5.3. setup_arch()
5.4. trap_init()
5.5. init_IRQ()
5.6. sched_init()
5.7. init()
5.8. dmesg Á¤¸®
6. µð¹ÙÀ̽º µå¶óÀ̹ö
6.1. µð¹ÙÀ̽º ¹øÈ£
6.2. »ùÇà µð¹ÙÀ̽º µå¶óÀ̹ö
6.3. ¸ðµâ µ¿ÀÛÀÇ ÀÌÇØ
6.4. ¾Ë¾Æ¾ßÇÒ °Í µé
A. SEGA DreamCast Linux
A.1. LinuxSH
A.2. µå¸²Ä³½ºÆ®¿¡¼­ ¸®´ª½º ½ÇÇàÇØ º¸±â
B. ¸®´ª½º¿¡ ½Ã½ºÅÛ ÄÝ ¸¸µé¾î ³Ö±â
B.1. ½Ã½ºÅÛ ÄÝÀÇ È帧
B.2. IDT(Interrupt Descriptor Table)
B.3. ½Ã½ºÅÛ ÄÝ Å×À̺í
B.4. ½Ã½ºÅÛ ÄÝ Ãß°¡
C. Inline Assembly
C.1. ÀζóÀÎ ¾î¼Àºí¸® ±âÃÊ
C.1.1. ¾Ë¾Æ¾ßÇÒ °Í µé
C.1.2. ¾î¼Àºí¸®
C.1.3. Output/Input
C.1.3.1. Constraints
C.1.3.2. Modifier
C.1.3.3. ARM Family Constraints
C.1.3.4. i386 Family Constraints
C.2. »ç·Ê ºÐ¼®
C.2.1. strcpy()
C.2.2. _set_gate()
Ç¥ ¸ñ·Ï
1-1. v2.4.16 Ä¿³Î ÄÄÆÄÀÏÀ» À§ÇÑ ÃÖ¼Ò ¿ä±¸ »çÇ×
4-1. ¼½¼Ç µð½ºÅ©¸³ÅÍ Çʵå
4-2. ÆäÀÌÁö µð½ºÅ©¸³ÅÍ Çʵå
4-3. 2·¹º§ µð½ºÅ©¸³ÅÍ Æ÷¸Ë
4-4. 2·¹º§ µð½ºÅ©¸³ÅÍ Á¢±Ù ±ÇÇÑ
4-5. ¸Þ¸ð¸® ½Ã½ºÅÛ ¼Ó¼º
4-6. ij½Ã, ¾²±â ¹öÆÛ ºñÆ®ÀÇ ÀǹÌ
4-7. Á¢±Ù ±ÇÇÑ
5-1. ¿¹»ó °á°ú
5-2. °¡´ÉÇÑ °á°ú
±×¸² ¸ñ·Ï
2-1. mbrÀÇ ±¸Á¶
2-2. bzImageÀÇ ±¸Á¶
4-1. º¯È¯ Å×À̺í 1·¹º§ µð½ºÅ©¸³ÅÍ Á¢±Ù
4-2. 1·¹º§ µð½ºÅ©¸³ÅÍ Æ÷¸Ë
4-3. ¼½¼Ç º¯È¯
4-4. 2·¹º§ µð½ºÅ©¸³ÅÍ Á¢±Ù
4-5. 2·¹º§ µð½ºÅ©¸³ÅÍ Æ÷¸Ë
4-6. Å« ÆäÀÌÁö º¯È¯
4-7. ÀÛÀº ÆäÀÌÁö º¯È¯
4-8. SA-1110 ¸Þ¸ð¸® ¸Ê
4-9. ARM ¸®´ª½º Ä¿³Î À̹ÌÁö ¸Þ¸ð¸® ¸Ê
B-1. IDT ±¸Á¶
B-2. fork()°¡ ½ÇÇàµÉ ¶§ÀÇ È帧