Linux內核的啟動過程大體上可以分為3個階段:
1、內核解壓(匯編+C) 主要由arch/arm/boot/compressed/對zImage完成解壓(C語言),并跳轉到下階段代碼
2、板級引導階段(匯編) 主要進行對cpu和體系結構的檢查、cpu本身的初始化以及頁表的建立,使能MMU、復制數據段、清BSS段、調用start_kernel函數
3、通用內核啟動階段(C語言) 進入init/main.c文件,從start_kernel開始進行內核初始化工作,最后調用rest_init。
具體內容如下:
設置與體系架構相關的環境 初始化控制臺 在rest_init中創建init進程,如果命令參數設置了init=/linuxrc,則執行linuxrc進程作為1號進程
設置初始化控制臺
解析inittab