Linux開機啟動過程

2021-07-25 20:02:28 字數 2011 閱讀 8462

使用電腦這麼長時間了,很多人可能跟我一樣都不太清楚電腦是怎樣啟動的,所謂的電腦原本只是一堆破銅爛鐵廢塑料,接通電源之後,竟擁有強大的計算能力的,為我們提供服務。我們所需要做的僅僅是按下開機按鈕,然後等待開機完成即可,我們來試著**一下電腦開機背後的故事。

總體來說,計算機的開機過程是按照如下的程式循序漸進的:

從上面的簡易流程圖可以看出,對於我們使用者透明的開機過程竟然經歷了這麼多的步驟。

下面我們針對其中的每乙個進行詳細講解。

當我們開啟電源的時候,電腦會自動從主機板的bios(basic input/output system)中讀取其中所儲存的程式,這裡的**是專門針對當前計算機的主機板的,當主機板廠商對外銷售主機板的時候,這些**就已經存在裡面了。這裡的程式會知道一些直接連線在主機板上的硬體,比如硬碟,鍵盤,網絡卡等等。所謂的加電自檢主要是bios檢查這些硬體裝置的工作狀態是否正常。

自檢完成後,bios會根據你設定的開機啟動順序,按次序找到可以正確引導的選項。現在大部分bios允許我們從多種裝置中來啟動電腦,比如硬碟,光碟,u盤等。假設當前的引導選項順序為硬碟->可移動裝置->u盤,那麼當第乙個選項硬碟可以被正確引導時,後續的兩個選項將忽略,除非排在前面的引導選項都無法正常引導,才會考慮當前的引導選項。這也就是為什麼當我們選擇用u盤裝系統的時候,需要先把引導選項可移動裝置移到最前面的原因了。

加電自檢完成之後,bios 找到乙個可以成功引導的選項,比如我們成功的找到了乙個引導選項:硬碟,那麼電腦會從硬碟的前512 byte的儲存空間中讀取資料。這裡的512 byte就是我們所說的主引導記錄mbr(master boot record)。 mbr會告訴電腦從當前硬碟的哪乙個分割槽來裝載引導程式(boot loader). boot loader儲存有作業系統相關的資訊,比如系統的名稱,作業系統的核心所在的位置等等。目前常用的boot loader有grub 和 lilo。

從上面分析可以看出,mbr是用來找到並載入boot loader的,而boot loader的主要功能則是用來載入作業系統核心(kernel)的。核心實際上是乙個用來操作計算機的程式,主要的任務就是管理計算機的硬體資源,充當軟體和硬體的介面,同時提供其他的管理功能:比如檔案系統,網路管理等。使用者的應用程式是不能直接操作硬體的,所有的操作必須通過中斷傳遞給核心,由核心傳達給硬體。不同的作業系統有不同的核心,比如典型的作業系統window 和 gnu/linux 它們有著各自的核心。(對於gnu/linux 的作業系統,大家可能都有耳聞,但是要是說到gnu/linux核心之父,想必很多人都不知道,因為這個人實在太低調了,他就是影響全球的linus torvalds)。

實際上,我們的硬碟通常是被劃分成多個分割槽的,因此我們可以在多個分割槽上都安裝boot loader,每個boot loader可以載入對應的不同作業系統,在讀取mbr的時候,選擇我們想要啟動的引導引導程式即可,這就是我們常說的多作業系統的原理。

比如我們當前載入的gnu/linux 核心,那麼linux核心就開始工作了。核心首先會在記憶體中預留自身執行所需要的記憶體空間,然後通過驅動程式去檢測計算機的硬體,檢測完成後,核心就知道了有哪些硬碟可以使用。

核心載入完成之後,核心會啟動乙個init程序,這個程序就是被稱為「天字一號」的1號程序。接下來的初始化工作都是借給init來管理的。 init 會執行一系列的初始化指令碼,完成計算機的設定和服務的準備工作,比如設定計算機的名稱,設定網路,掛載硬碟等等以及一些開機自啟動的服務。

初始化完成之後,就會出現我們期待已久的歡迎標語和登入提示符了,如果系統中有乙個合法的使用者比如jacknichao,那麼我們可以輸入使用者名稱jacknichao 然後作業系統會提示輸入密碼,待我們輸入了正確的密碼之後,就成功的進入了系統,取得了與作業系統核心互動的介面,稱之為shell,後面根據我們的許可權便可以訪問作業系統提供給我們的合法資源了。

通過前文的分析,我們發現開機啟動的過程也是比較複雜的,儘管對於我們普通使用者而言不需要知道這些詳細的過程,但是了解其背後的操作流程還是挺有意思的不是嘛!同時,清楚了這些過程之後,對我們以後重灌作業系統,修復一些開機過程中的錯誤問題也是非常有裨益的。

(ps:本人能力有限,如有描述錯誤請各位看官批評指正,感激不盡☺)

linux開機啟動過程

a.bios basic input output system 開機自檢,讀取硬體資訊,並選擇啟動裝置 b.讀取啟動裝置的mbr major boot record 如果是多系統引導則選擇啟動的分割槽 boot sector 否則進入c c.讀取並解壓核心檔案,檢測並驅動硬體 d.驅動硬體完畢後,...

linux開機啟動過程

linux啟動過程 啟動過程 1.加電自檢,由bios程式檢測硬體,根據cmos設定的引導裝置順序來搜尋可引導裝置,可以是光碟機 軟盤 usb等。2.載入主引導程式程式 mbr 主引導程式是乙個512位元組的映像,包含一點機器碼還有乙個小的分割槽 主引導程式的任務就是查詢並且載入處在硬碟分割槽上的次...

Linux開機啟動過程

1 bios加電自檢 加電自檢,檢測硬體裝置。然後按照cmos上面的順序來搜尋處在活動狀態下的可以引導的裝置。可以是光碟機 軟盤 usb等。2 載入主引導引導程式 mbr 主引導程式是乙個512位元組的映像。包含一點機器碼還有乙個小的分割槽。主引導程式的任務就是查詢並且載入處在硬碟分割槽上的次引導程...