建議在電腦上看,手機上格式有點問題,認真讀,這方面沒問題的,肝了一天。
目錄.計算機啟動詳解
- 一.計算機啟動直觀圖
- 二.步驟詳解
- 前置準備
- 磁盤初始化
- 1.開機階段
- 2.執行BIOS階段
- 3.執行引導記錄(MBR)階段
- 4.操作系統加載與初始化
- 3.最終流程和關注重點
- 4.樣例
一.計算機啟動直觀圖
二.步驟詳解
前置準備
在計算機啟動前,需要進行磁盤等硬件設備的前置準備,并且這個一般是由商家完成再進行售賣,或者用戶自己在硬盤裝操作系統。
階段 | 操作內容 | 是否在啟動時發生 |
---|---|---|
物理初始化(低級格式化) | 劃分磁道、扇區 | 否(出廠完成) |
分區 | 創建MBR/GPT分區表 | 否(用戶手動操作) |
邏輯格式化(高級格式化) | 創建文件系統(如EXT4) | 否(安裝系統時完成) |
啟動時初始化 | 掛載已格式化的文件系統 | 是 |
注意:分區是用戶手動操作,通常在操作系統安裝之前或通過磁盤管理工具進行。因此,在正常的啟動流程中,分區操作并不屬于啟動階段的一部分,而是系統安裝或維護時的操作
注意:邏輯格式化(高級格式化)通常由操作系統安裝程序或用戶手動使用工具(如mkfs)完成。安裝系統時,安裝程序會在分區后對分區進行格式化以創建文件系統。
注意:MBR分區的創建通常由用戶使用分區工具(如fdisk)在安裝操作系統時完成,或者由操作系統安裝程序自動處理。這一步驟發生在操作系統安裝階段,而非日常啟動流程中。特別注意操作系統安裝是指,將操作系統寫進磁盤的操作,而不是PBR進行操作系統加載到內存,注意區分。
磁盤初始化
步驟 | 執行者 | 操作內容 |
---|---|---|
物理初始化(低級格式化) | 硬盤制造商 | 劃分磁道、扇區,標記物理地址 |
創建分區表(MBR/GPT) | 用戶或安裝程序(如fdisk) | MBR:劃分主分區(最多4個)、擴展分區 |
邏輯格式化(高級格式化) | 用戶或安裝程序(如mkfs) | 創建文件系統(如EXT4/NTFS),初始化超級塊、inode表、數據塊位圖。 |
寫入引導程序 | 操作系統安裝程序 | MBR:寫入Stage 1引導代碼(如GRUB)。 |
操作系統安裝 | 安裝程序 | 將操作系統文件寫入格式化后的分區(如Windows的C盤、Linux的/分區)。 |
注意:創建分區表中的MBR與寫入引導程序中的MBR區分
a.前者
這應該是指在初始化硬盤時創建MBR分區表的過程。當用戶使用分區工具(如fdisk、gdisk等)對硬盤進行分區時,工具會在硬盤的第一個扇區寫入MBR結構,其中包含分區表信息。這個過程屬于磁盤分區階段,主要目的是定義硬盤的邏輯分區結構,即哪些區域屬于主分區、擴展分區等。
b.后者
這通常指的是在MBR的引導代碼部分寫入具體的引導程序(如GRUB的Stage 1),以便在啟動時加載操作系統。這一步是在系統安裝或配置引導程序時完成的,屬于引導加載程序的安裝階段。
1.開機階段
?當按下電源按鈕,電源供應器開始為各個硬件組件供電。此時,CPU重置,從固定的內存地址開始執行代碼。這個階段主要涉及硬件初始化,但還沒有進入BIOS或UEFI代碼的執行。
a.電源接通:主板、CPU、內存等硬件開始供電。
b.CPU重置:CPU從固定地址(如x86的0xFFFF0)開始執行代碼(BIOS入口)。
c.時鐘與總線初始化:主板芯片組初始化時鐘信號和總線協議(如PCIe)。
2.執行BIOS階段
?BIOS(Basic Input Output System基本輸入輸出系統)存儲在主板上的ROM中,CPU在重置后會跳轉到BIOS的入口地址(通常是0xFFFF0),BIOS負責進行POST(Power-On Self Test)。
?CPU重置后PC指向的內存地址就是BIOS,且是ROM內存(ROM和RAM一起編制組成內存)。此后CPU開始按照該內存地區中的指令一步步執行,如檢測硬件設備如內存、硬盤、鍵盤等是否正常。POST完成后,BIOS會按照預設的啟動順序(Boot Order)查找可啟動設備(如硬盤)。:
a.硬件檢測:檢查內存、硬盤、鍵盤等關鍵設備是否正常,異常則通過蜂鳴器或屏幕提示報錯。
b.中斷初始化:初始化中斷向量表(如INT 0x19用于加載引導程序)。
c.讀取CMOS設置:按預設啟動順序(Boot Order)查找可啟動設備(如硬盤、USB)。
d.加載引導扇區:從選中設備的第一個扇區(磁盤中的MBR)讀取512字節到內存0x7C00。
注意:中斷向量表(IVT)是計算機中用于處理中斷和異常的數據結構,記錄了每個中斷號對應的處理程序地址。在啟動過程中,BIOS階段會初始化中斷向量表,以便硬件中斷能被正確處理。
3.執行引導記錄(MBR)階段
?BIOS找到啟動設備后,會讀取該設備的第一個扇區(即MBR,主引導記錄),大小為512字節。MBR包含引導加載程序(引導加載PBR用的)和分區表。引導加載程序的任務是加載更復雜的引導程序(活動分區中的PBR),或者直接加載操作系統內核,然后將控制權交給操作系統。分區表則是記錄了硬盤的分區信息。
?當CPU執行完BIOS程序之后,MBR內容已經載內存中了,CPU隨之解析其內容并執行其一些列指令,如加載操作系統:
a.解析MBR結構
?引導代碼(446字節):加載并執行后續引導程序PBR用的。
?分區表(64字節):定義4個主分區信息(起始扇區、大小、類型等)。
?簽名(2字節0x55AA):驗證MBR有效性。
b.引導加載程序(用于加載PBR)
?加載第二階段引導程序PBR,或直接加載操作系統內核。
?切換至保護模式:設置GDT(全局描述符表)和IDT(中斷描述符表)。
?傳遞內核參數:如根文件系統位置(root=/dev/sda1)。
注意:PBR(分區引導記錄)位于每個分區的第一個扇區,用于加載該分區內的操作系統。
注意:MBR中存儲的是用于引導加載PBR的引導程序,即操作系統的引導過程由MBR中的引導代碼啟動,然后跳轉到活動分區的PBR執行進一步引導。
注意:
4.操作系統加載與初始化
?當MBR中的引導程序將PBR引導程序加載到內存時候,CPU會執行PBR中的一系列指令完成對操作系統的加載和初始化。
a.內核加載與初始化
?內核加載:引導程序將內核映像(如vmlinuz)加載到內存.
?內核初始化:
??1.初始化關鍵數據結構:GDT/IDT(定義內存段和中
???斷處理程序),頁表(啟用分頁機制)。
??2.硬件探測與驅動加載:識別CPU、內存、磁盤控制
???器等,加載驅動程序。
??3.根文件系統掛載:根據引導參數掛載根分區。
b.用戶空間初始化
?啟動init進程:內核啟動第一個用戶進程(PID=1)。
?執行初始化腳本:如掛載文件系統,啟動系統服務。
?登錄界面就緒:啟動顯示管理器。
注意:MBR負責全局引導,PBR負責分區內引導。如此處就是MBR引導某分區PBR(通常為C盤),C盤中的活動分區PBR引導加載此盤中的操作系統。
3.最終流程和關注重點
?開機上電 → BIOS階段(初始化IVT) → 加載MBR → 執行MBR引導代碼 → 跳轉至活動分區的PBR → 加載操作系統內核(掛載文件系統) → 系統啟動完成
這部分還未完善,后續做題后補充。
4.樣例
后續我會做408真題,再寫。