linux核心啟動引導過程

來源:互聯網
上載者:User

標籤:style   c   tar   com   a   檔案   

linux核心(uImage格式鏡像,uImage = zImage_壓縮的核心鏡像 + 0x40位元組大小的uboot格式資訊頭)的啟動過程大體可以分為三個階段:
第一:核心的自解壓過程(彙編+C語言實現)
主要由、arch/arm/boot/compressed對zImage完成解壓,並調用call_kernel跳轉到下階段代碼。
第二:板級引導階段(彙編實現)

 
主要進行cpu和體繫結構的檢查、cpu本身的初始化以及頁表的建立等
第三:通用核心啟動階段(C語言實現:重點分析)
1. 進入init/main.c檔案,從start_kernel()函數開始進行一系列的核心初始化工作,最後調用rest_init()函數
2. 在rest_init()函數中建立第一個核心線程kernel_init
3. 在kernel_init()線程中初始化各種驅動等,最後調用init_post()函數
4. 在init_post()函數中釋放初始化記憶體段,標誌著核心啟動完成,並建立起標準輸入/標準輸出/標準錯誤輸出,然後努力尋找一個使用者進程init,將該進程作為系統的第一個使用者進程,進程號為1.
5. 核心啟動完成,接下來就是使用者的事情了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.