[摘]嵌入式linux系統的開啟

來源:互聯網
上載者:User

  在各種體繫結構平台上,多數核心映像都採用壓縮格式(MIPS 平台例外,它的映像採用非壓縮格式) 。Linux 系統的一般啟動過程通常劃分為核心引導、核心啟動和應用程式啟動3 個階段。

  第一階段是目標板硬體初始化,解壓核心映像,再跳轉到核心映像入口。這部分的工作一般由目標板的引導程式和核心映像的自引導程式完成。不同體繫結構的目標板引導的方式和程式都有差異。Decompress Kernel --> Call Kernel,這和bootloader有關。

  第二階段是核心的初始化,初始化裝置驅動,掛接根檔案系統。這裡是 Linux 核心通用的啟動函數入口。所有體繫結構的目標板都順序調用統一的函數,儘管有些函數的代碼實現是跟體繫結構相關的。Initialize hardware, Initialize device driver, Mount root filesystem, Execute /sbin/init

  第三階段是執行使用者空間的 init 程式,完成系統初始化、啟動相關服務和系統管理使用者登入等工作。這個階段可以提供給使用者互動介面,例如:Shell 命令列或者圖形化的視窗介面。也可以自動執行應用程式。login prompt, Start network service, Start X-Windows

  在 Linux 系統啟動過程中,有兩個關鍵點。一個是核心映像的解壓啟動;另一個是根檔案系統的掛接。目標板處理器上電或者複位後,首先執行引導程式(Bootloader) ,初始化記憶體等硬體,然後把壓縮的核心映像載入到記憶體中,最後跳轉到核心映像入口執行。這樣就把控制權完全交給核心映像了。接下來核心映像繼續執行, 完成自解壓或者重定位,然後跳轉到解壓後的核心代碼入口。這部分主要是 Linux 核心的自引導程式,又叫作 Linux bootloader,包含在核心原始碼中。這部分引導代碼相對簡單,不可能替代目標板上的 Bootloader。

  因為檔案和應用程式都要儲存在檔案系統中,所以 Linux 離不開檔案系統。在核心啟動到最後,必須掛接一個根檔案系統。從檔案系統的目錄下找到 init 程式,啟動 init 進程。

來自:《嵌入式 Linux 系統開發技術詳解——基於 ARM》

我同意網上的一些書評,認為這本書寫得比較雜亂,似講義。不適合用作為入門或者學習的。適合於正在看其他相關的書,用來輔助閱讀,以及對嵌入式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.