以x86體系結構的計算機爲例函數
第一步是BIOS從啓動設備中導入主引導記錄(MBR),接下來MBR中的代碼查看分區表並從活動分區讀取GRUB,LILO或SYSLINUX等引導裝入程序(Bootloader),以後引導裝入程序會加載壓縮後的內核映像並將控制權傳遞給內核。內核得到控制權後,會將自身解壓並投入運行。spa
x86的cpu有兩種操做模式:實模式和保護模式。在實模式下,用戶僅能夠使用1MB內存,而且沒有任何的保護。保護模式複雜不少,使用能夠使用更多的高級功能。cpu必須在中途將實模式切換到保護模式。切換是單向的,不可逆的。進程
內核初始化的第一步是執行實模式下的彙編代碼,以後切換到保護模式,執行init/main.c文件中的start_kernel()函數。start_kernel()首先會初始化cpu子系統,以後讓內存和進程管理系統就位,接下來啓動外部總線和I/O設備,最後一步是激活init進程,它是全部Linux進程的父進程。init進程執行啓動必要的內核服務的用戶空間腳本,而且最終派生出控制檯終端程序和顯示登陸提示。內存