|
|
|
| Boot Sequence |
- Stage 0 = in the BIOS
- Execute a JMP at 0xFFFFFFF0 ( 1st instruction after power on )
- Power-On-Self-Test
- Detect hardware
- Load Interrupt Vector table ( 0x0 )
- Find Master Boot Sector ( 1st 512Bytes and sector ends with 0xaa55 )
- Copy Master Boot Sector ( track 0 Sector 0 ) into RAM at 0x7C00
- Execute ( int 0x19 ) the MBR ( aka 1st Stage Loader ) moved to 0x9000
- Stage 1 BootLoader ( aka Master Boot Sector )
- the BootLoader is arch/i386/boot/bootsect.S
Displays: Loading.....
- setup() is loaded at 0x00090200
- zImage is loaded at 0x00010000 bootsect.S -Ttext 0x1000
- bzImage is loaded at 0x00100000 bbootsect.S -Ttext 0x100000 -D__BIG_KERNEL__
- Print L than load 2nd stage
- Print I than execute the 2nd stage
- Stage 1.5 FS
- Grub will load its filesystem boot info
- Stage 2 Main Boot Process
- Print L than load 2nd stage
- Read the /boot/map file
- Print O after the map file was loaded
- Grub and Lilo will show its kernel options to boot
Displays: Uncompressing vmlinuz.....
- Stage 3 Kernel - Hardware Detect and Scan
- Jump/Execute setup() ( arch/i386/boot/setup.S or bsetup.S )
- Scan the PCI bus for peripherals: KB, mouse, svga, disks
- setup interrupts vectors
- Load the device Drivers ( modules )
- switch from real-mode to protected mode
- -- or -- is this where: "uncompressing linux" displays
- Jump/Execute startup_32() ( arch/i386/kernel/head.S ) ( Start PID=0 )
- Stage 4 Root FileSystem
- Jump/Execute start_kernel() ( start PID=1 )
- Load the optional ramdisk ( execute /linuxrc ) or is it before pid=0
- run init ( /etc/inittab ) ( PID = 1 )
- run rc.sysinit
- run rcx.d init scripts
|
| Boot Sequence URLs |
|
|
|