歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 深入剖析linux啟動過程

深入剖析linux啟動過程

日期:2017/2/28 18:05:18   编辑:Linux教程
深入剖析linux啟動過程
  linux系統的啟動過程是由很多步驟組成的,但是,無論你是啟動一個標准的x86桌面計算機,還是一個嵌入式PowerPC的目標板,大多數的流程是驚人得相似的。這篇文章,探索了linux從最初的啟動准備到用戶空間中某個程序被開啟之間的啟動過程,跟隨這個流程,你還能學到其他許多與啟動有關的知識,例如,boot loaders,內核解壓縮,初始化內存盤,以及其他一些linux啟動的部分。
  在很早的時候,啟動一個計算機意味著去喂那些包含啟動程序的紙帶,或者通過手工使用前面板那密密麻麻的地址/數據/控制開關來加載啟動程序,但是,簡化這個流程並非必須的。
  讓我們首先從一個較高的高度上來對linux的啟動做一個全面的分析,然後,我們會回顧一下,在每一個獨立的過程中,發生了什麼事情。在這途中的參考源代碼將幫助你在內核樹中不至於迷失方向,並能繼續深入挖掘下去。
  一、 概述 對啟動過程的整體回顧:
  當系統一開始被啟動,或者重新啟動時,處理器將在眾所周知的位置執行代碼。在個人電腦上,這個位置處於基本輸入輸出系統中,也就是我們所說的BIOS,它是被存儲在主板上的閃存中的。在嵌入式系統中,中央處理器(CPU)則將復位區域激活,來開始執行flash或者ROM中的已知的程序。在其它情況中,基本的過程是一樣的。由於個人電腦提供了眾多靈活的可選設備,BIOS必須確定,由哪一個設備來執行啟動過程。在接下來的文章中我們將涉及這方面的更多的內容。
  當找到啟動設備時,第一階段所用的boot loader被裝載到RAM中並被執行。這裡的boot loader在大小上小於一個扇區的大小,也就是512字節,而它的任務,就是加載第二階段的boot loader。
  當負責第二階段的boot loader位於內存中並被執行時,通常會顯示一個一閃而過的屏幕,然後linux以及可選的初始化內存盤(一種臨時的根文件系統l)會被裝載到存儲器中。當系統鏡像被加載時,第二階段的boot loader將把控制權轉交給內核鏡像,與此同時,內核開始自解壓並初始化。在這個階段,第二階段的boot loader會檢查系統的硬件,枚舉那些附加的硬件設備,掛載根設備,之後加載需要的內核模塊。完成之後,第一個用戶空間程序(init)開始執行,更高層次的系統初始化開始。
  這就是從表面上看,linux的啟動過程。好了,現在,讓我們更進一步,更深入地探索linux啟動過程中的一些細節。
Copyright © Linux教程網 All Rights Reserved