Linux是如何啟動的

2021-09-07 06:10:38 字數 1376 閱讀 9241

今天早上在上作業系統課的時候,老師有提到計算機從按下開關鍵到最後由作業系統全然接管的整個過程。

只是講課畢竟是十分抽象的,由於之前自己也看過這方面的內容,可是老是記不住,所以今天晚上就花了點時間,把《鳥哥的linux私房菜》的相關部分又看了一遍。

以下就把核心流程給過一遍吧。

我們都知道,作業系統對計算機的管理起到了決定性的作用。

但是,作業系統在關機狀態下存在磁碟中的,而執行又是在記憶體中執行的。那麼能夠想象的是。在剛剛按下開機鍵時。記憶體中是不存在作業系統的。這時候乙個很自然的想法,就是要將硬碟中的作業系統載入到記憶體中。

可此時又是誰來管理排程這一切的呢?

這裡我們就不得不提到乙個叫做bios(basic input output system)的東西了,翻譯成中文就是基本輸入輸入系統。它事實上是一段燒錄到主機板的rom晶元上的一段程式。

開機時首先讀取的就是bios程式。然後bios程式還會載入乙個叫cmos的東西。用來取得主機的硬體配置。然後它還會進行自我檢測。接下來就是最最關鍵的部分了。由於計算機終於肯定是由作業系統控制的,那麼我們怎麼找到作業系統呢?最後bios會找到第乙個可啟動的裝置,通常是磁碟。然後讀取該磁碟的第乙個扇區中乙個叫mbr(masterboot record)的東西,即主引導分割槽塊。接下來我們就來談談這個mbr。

mbr事實上就是硬碟的第一扇區上乙個大小為446byte的磁碟空間。當中能夠用來存放引導引導程式(boot loader)。

這裡須要注意的是。我們都知道一塊磁碟上面往往能夠裝多個作業系統,這時我們就要對磁碟進行分割槽,然後不同的分割槽裡能夠裝不同的作業系統。而每乙個作業系統系統的boot loader都是不一樣的。所以通常在每乙個磁碟分割槽的開始也會有乙個相應的引導扇區(boot sector)。

因此為了滿足多重引導的需求,mbr中的boot loader往往提供例如以下三種功能:

1.提供選單:讓使用者能夠選擇不同的開機選項

2.載入核心檔案:即直接把該引導程式相應的作業系統核心載入

3.轉交給其它loader:就是把控制權轉交給其它分割槽的loader。然後載入對應的核心

到此為止。我們就能用boot loader來讀取核心檔案了。然後linux就會將核心檔案解壓縮到記憶體中,然後利用核心的功能檢測與測試周邊裝置。注意,儘管開始bios已經進行過一次硬體檢測了,可是linux核心不一定會使用。此時。核心才真正開始接管bios後的工作了。

最後。在核心進行完硬體檢測和驅動的載入之後會主動呼叫/sbin/init生成傳說中的1號程序  init 。而init通過一系列的配置檔案對系統的主機名,網路設定,語系處理,檔案系統格式以及其它的服務進行啟動,終於完畢對軟體執行環境的構建。因為不同作業系統的配置檔案區別較大,這裡就不贅述了。

總之,計算機從開機到由作業系統進行全然控制的過程基本上就是這種啦。

參考書籍:《鳥哥的linux私房菜》

linux 計算機是如何啟動的?

零 boot的含義 啟動 用英語怎麼說?回答是boot。boot原來的意思是靴子,啟動 與靴子有什麼關係呢?原來,這裡的boot是bootstrap 鞋帶 的縮寫,它來自一句諺語 pull oneself up by one s bootstraps 字面意思是 拽著鞋帶把自己拉起來 這當然是不可能...

springboot,是如何啟動的

public static void main string args 總結 springboot所有自動配置都是在啟動的時候自動掃瞄並且載入 meta inf spring.factories所有的自動配置類都在這個檔案裡面.但是不一定生效,要判斷條件是否城裡,只要匯入了對應的start,就有對應...

Linux是怎麼啟動的

昨天筆試考了一道關於linux系統啟動的過程,當時沒答上來,現在整理出來 其實並不複雜 按下電源按鈕的直到歡迎頁出來之後,linux總共做的事可以分為五步來完成。1 bios加電自檢 加電自檢,檢測硬體裝置。然後按照cmos上面的順序來搜尋處在活動狀態下的可以引導的裝置。可以是光碟機 軟盤 usb等...