參考:
linux開機過程
linux啟動流程
計算機是如何啟動的
每個硬碟最多有乙個mbr,這個mbr有512bytes,以0x55開始,0xaa結束。mbr分為446bytes與64bytes,前446bytes是一些開機的資訊,後64bytes是分割槽表資訊,每個分割槽有16bytes,所以最多有4個主分割槽。但是有一種擴充套件分割槽,linux中最多有乙個擴充套件分割槽,擴充套件分割槽中還可以有邏輯分割槽,邏輯分割槽理論上沒有上限。
每個分割槽中可以裝乙個作業系統,每個作業系統啟動時需要乙個boot loader來啟動它,這個boot loader會放在乙個叫boot sector的地方。即每個分割槽開始處就會有乙個boot sector,裡面存放的是這個作業系統的引導程式,也就是分割槽引導程式。所以開機過程中mbr會找到這個boot secotr,然後啟動boot loader。linux中最常見的boot loader就是grub。
但是如果我有多個作業系統怎麼辦呢?這時mbr中就會跳過尋找分割槽表中的啟用分割槽,而是啟動boot loader,比如grub。然後讓我們自己來選取啟動哪個作業系統。
之後計算機的控制權就交給grub來處理。
載入kernel。直接指向可以開機的程式段來開始作業系統。
轉交給其他loader。
這個圖中的mbr就是啟動了boot loader來讓我們自己選擇載入哪個作業系統的kernel檔案。圖中紅色就是kernel檔案。
首先是充電,啟動bios進行硬體自檢,然後bios把控制權轉交給下乙個階段的啟動程式。
這個下乙個階段的啟動程式存放在哪個裝置中呢?即bios需要乙個外部裝置的排序,根據排序以及外部裝置的內容來轉交控制權。
bios找到乙個優先順序最高且可作為啟動裝置的裝置之後,就把控制權交給這個裝置的mbr,即下乙個階段的啟動程式。
在mbr中後64位元組記錄了整個裝置的大致分割槽情況。根據mbr的資訊找到boot loader,然後根據boot loader啟動作業系統的kernel。
上述過程完成之後,控制權就轉交給作業系統了。
grub是linux的乙個常用boot loader,可以根據grub來載入linux核心。
Linux開機過程
linux初探之linux啟動 基礎 linux作業系統現在廣泛應用於各種伺服器。它的啟動總共可以分為9個步驟。第一步 bios自檢 也稱上電自檢 post,power on self test 指計算機系統 接通電源,自動執行主機板coms晶元 固化的程式 bios程式 的行為,包括對cpu 系統...
Linux開機過程
linux初探之linux啟動 基礎 linux作業系統現在廣泛應用於各種伺服器。它的啟動總共可以分為9個步驟。第一步 bios自檢 也稱上電自檢 post,power on self test 指計算機系統,接通電源,自動執行主機板coms晶元固化的程式 bios程式 的行為,包括對cpu 系統主...
linux主機開機過程
linux主機開機過程 1,計算機通電後,開始讀取bios並進行主機的自我測試 2,通過bios取得第乙個可開機裝置,讀取主要開機區 mbr 取得啟動裝載程式 3,通過啟動裝載程式的設定,取得核心並載入記憶體且監測系統硬體 4,核心主動呼叫init程序 5,init程序開始執行系統初始化 etc r...