ºÎÆà °úÁ¤ °³¿ä
- Àü¿øÀÌ ÄÑÁö¸é ROMÀÇ ÃʱâÈ ÇÁ·Î±×·¥ÀÌ ¼öÇàµÈ´Ù.
- ºÎÆà ¸Åü·ÎºÎÅÍ 0¹ø ¼½ÅÍÀÇ boot programÀ» ÀоîµéÀδÙ.(0¹ø ¼½ÅÍ : MBR, Master Boot Record), Linux¿¡¼´Â LILO°¡ À̸¦ ³ªÅ¸³½´Ù.
- LILO´Â kernel image¸¦ ÀÐ¾î¼ ½ÇÇàµÈ´Ù. (kernel image : /vmlinuz ȤÀº /boot/vmlinuz)
- swapper¶ó°í ºÒ¸®´Â ÇÁ·Î¼¼½º(id=0)ÀÌ ½ÇÇàµÈ´Ù.
- init ÇÁ·Î¼¼½º(id=1)°¡ ½ÇÇàµÈ´Ù. (inittab file ÂüÁ¶)
BIOS °³¿ä
- ÄÄÇ»ÅÍ Àü¿øÀÌ ÄÑÁö¸é 0xfffffff0 ¼öÇà(BIOS°¡ ÇÒ´çµÇ¾îÀÖ´Â ¿µ¿ª)
- ¸®´ª½º¿¡¼´Â Ä¿³ÎÀÌ ÃʱâȵǸé BIOS¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù. µ¶ÀÚÀûÀ¸·Î device driver¸¦ Á¦°øÇÏ°Ô µÈ´Ù.
- BIOS´Â real mode¿¡¼ ¼öÇàµÇ´Â ¹Ý¸é, kernelÀ» protected mode¿¡¼ ¼öÇàµÈ´Ù. ±×·¯¹Ç·Î, ¸®´ª½º´Â BIOS ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù.
- real mode address : seg*16+off
BIOS bootstrap
- test on the computer hardware(POST : Power-On Self-Test)
- initializes the hardware devices
- searches for an O.S -> first sector of FD, HD, or CD
- copies the contents of its first sector into RAM, starting from physical address 0x00007c00
Boot Loader
; is the program invoked by the BIOS to load the image of an operating system kernel into RAM
Ç÷ÎÇÇ µð½ºÅ©·ÎºÎÅÍÀÇ ºÎÆà °úÁ¤
- moves itself from address 0x00007c00 to address 0x00090000
- sets up the real mode stack, from address 0x00003ff4
- sets up the disk parameter table
- invokes a BIOS procedure to display a "Loading" message
- invokes a BIOS procedure to load the setup() code of the kernel image from the FD and put it in RAM starting from address 0x00090200
- invokes a BIOS proceduer to load the rest of kernel image from the FD and puts the image in RAM starting from either low address 0x00010000(zImage) or high address 0x00100000(bzImage)
- jumps to the setup() code