天天看點

linux核心3.0.1啟動流程分析(施工中)

1.自解壓(這部分就超多内容,後續補充)

2.首先是彙編部分,進入SVC模式,關中斷

3.CP15擷取處理器ID,并檢查比對

4.檢查核心參數表是否有效(根據是否位元組對齊檢查)

5.初始化MMU的頁表

6.設定傳回的虛拟位址(開啟MMU後全是虛拟位址,是以要存傳回位址),并儲存頁表基址,好存入TTBR1中(也就是用于轉換的頁表基址)

7.初始化CPU

8.啟動MMU

9.清.bss段,将需要的全局變量轉移到全局變量區

10.跳到start_Kernel中

11.擷取核心啟動參數,初始化核心各元件(排程器,記憶體管理,poll等等)

12.steup_arch()架構初始化

13.架構初始化最後執行,rest_init(),完成裝置驅動初始化并建立并啟動核心線程init線程,設定線程為不可殺

14.運作指定的init程式。

繼續閱讀