一、BIOS
1.POST(Power-On Self-Test)
2.初始化硬體裝置
3.搜尋一個作業系統來啟動
4.隻要找到一個有效的裝置,就把第一個扇區的内容拷貝到RAM中從實體位址0x00007c00開始的位置,然後跳轉到這個位址處,開始執行剛剛裝載進來的代碼。
二、Boot Loader:引導裝入程式
boot loader是由BIOS用來把作業系統的核心映像裝載到RAM中所調用的一個程式。引導裝入程式可以指定使用哪個核心檔案來啟動。
從磁盤啟動Linux核心需要一個兩步的引導裝入程式。早起Linux預設使用LInux LOader(LILO),主流的為GRand Unified Bootloader(GRUB),還有人用spfdisk
三、setup()
setup()函數必須初始化計算機中硬體裝置,并為核心程式的執行建立環境。
四、startup_32()
有兩個startup_32()函數
arch/i386/boot/compresed/head.S
arch/i386/kernel/head.S
這兩個函數使用相同的名字不會産生任何問題,因為這兩個函數會跳轉到自己的起始實體位址去執行。
五、start_kernel()
start_kernel()函數完成Linux核心的初始化工作。
最後就會在控制台上出現熟悉的登入提示符~\^v^/~