Linux核心(一)系統啟動過程

來源:互聯網
上載者:User

標籤:

 轉載請註明出處:jiq?欽‘s technical Blog 

 

(1) CPU自身初始化:

CPU加電之後需要進行一系列的初始化工作;

(2) CPU載入BIOS(Basic InputOutput System):

CPU執行一個固定的位置(一般是0xFFFFFFF0)的指令。這是一條跳轉指令,跳轉到BIOS代碼的首部。BIOS固化在主板上一個很小的ROM中,主要完成兩個工作:

(a) 加電自檢(POST):完成系統硬體(記憶體,系統匯流排等)檢測;

(b) 載入核心引導程式:讀取主引導記錄MBR(啟動裝置的第一個扇區),MBR中儲存了核心引導程式的開始部分,BIOS載入MBR並執行。

(3) 引導程式載入核心映像

核心引導程式分為兩個階段:

(a)主引導程式掃描分區表,將位於使用中的磁碟分割引導記錄中的次引導程式載入到記憶體並執行;

(b)次引導程式負責載入核心映像到記憶體;

(4) 核心映像開始工作:

自解壓,然後調用init/main.c中的start_kernel()函數執行;

至此核心的引導過程已經結束,下面進入核心的初始化過程!!!

核心的初始化過程從start_kernel()函數開始,直至第一個使用者進程init結束:

(1) start_kernel()函數:相當於核心整個初始化工作的man函數。

完成核心的大部分初始化工作,主要是儲存管理、裝置管理、檔案管理、進程管理等任務的初始化;

(2) reset_init()函數:後續初始化,由start_kernel()函數調用;

(3) kernel_init()函數:完成裝置驅動程式的初始化,並調用init_post()函數啟動使用者空間中的init進程;

(4) init_psot()函數:啟動使用者空間中的init進程,init標準位置在/sbin/init,init進程讀取/etc/inittab檔案來觸發諸如接受使用者登入,設定鍵盤,網路等這些進程。至此系統已經成功啟動了!!!

Linux核心(一)系統啟動過程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.