歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux內核

Linux內核的引導過程

總體上來講:

BIOS->MBR->GRUB(LILO)->內核->用戶空間

1. 系統上電時,cpu會將pc指針賦值為一個特定的地址0xffff0, 並且執行該地址處的指令。在pc中,該地址位於BIOS中。

2. BIOS按照CMOS中設定的啟動順序來搜索處於活動狀態的,可以引導的設備。如果是硬盤,則讀取MBR(512)個字節到RAM中,並將控制權交給這段程序。

3. 主引導加載程序查找並加載次引導加載程序。它在分區表中查找活動分區,當找到一個活動分區時,掃描其他分區,以確保它們不是活動的。當這個過程完成之後,將這個活動分區的引導記錄讀入RAM並執行它。

4. 次引導加載程序加載Linux內核和可選的初始RAMdisk, 並將控制權交給Linux內核。

5. 運行被加載的內核,並啟動用戶空間應用程序。

內核啟動到用戶空間的流程如下:

start() :                                                                      /arch/i386/boot/head.S     基本的硬件設置

startup_32():                                                            /arch/i386/boot/compress/head.S 初始化頁表,啟動內層分頁機制。

          decompress_kernel():                                     /arch/i386/boot/compress/misc.c

startup_32();

start_kernel():                                                          /init/main.c  初始化中斷,進一步設置內存

cpu_idle():                                                                /init/main.c

Copyright © Linux教程網 All Rights Reserved