国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Windows 引導啟動流程詳述(BIOS-UEFI)

這篇具有很好參考價值的文章主要介紹了Windows 引導啟動流程詳述(BIOS-UEFI)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


BIOS 和 UEFI 的由來

BIOS 存在哪里

上個世紀70年代初,“只讀內存”(read-only memory,縮寫為ROM)發(fā)明,開機程序被刷入ROM芯片,計算機通電后,第一件事就是讀取它。

Windows 引導啟動流程詳述(BIOS-UEFI),Windows驅動,計算機基礎,windows
這塊芯片里的程序叫做"基本輸出輸入系統(tǒng)"(Basic Input/Output System),簡稱為BIOS。

BIOS 程序的功能

存儲在 ROM 芯片中的這一小段程序就是 BIOS 程序,雖然現(xiàn)在新出現(xiàn)的引導啟動方式已經有了 UEFI 啟動(或者 EFI 啟動),但是其實 UEFI 或者 EFI 的一部分也是存儲在這個芯片中。它們在計算機上電后的流程基本是一致的。上電后,硬件操作會將芯片中的程序讀到內存中的固定位置,并賦值 PC 和 CS 固定的數值使得 CPU 能夠從內存固定的位置去取值執(zhí)行,從而開始最初的 BIOS 程序執(zhí)行(這里的 BIOS 程序是指 BIOS 和 UEFI 的統(tǒng)稱)。一直以來,我們都將計算機的引導啟動程序稱為 BIOS ,無論現(xiàn)在它還是否叫 BIOS 或者 UEFI ,我們還是習慣統(tǒng)稱其為 BIOS。

BIOS 和 UEFI 的發(fā)展由來

最早的 BIOS 就是存放在計算機 ROM 中用于引導開機的一段程序代碼(匯編代碼)。其功能也很簡單純粹,計算機硬件自檢、CMOS設置、尋找存放有操作系統(tǒng)的存儲硬件、讀取存儲硬件的程序、引導操作系統(tǒng)啟動、提供硬件 I/O 和硬件中斷等基礎功能。這些基礎功能對于計算機上電后的運行是必不可少的一部分。(就像最簡單的 51 單片機一樣,最初上電后也需要執(zhí)行一段最基本的寄存器初始化和內存代碼讀取的匯編指令)

雖然 BIOS 作為電腦加電啟動所必不可少的部分,但是從其于 1975 年誕生之日起近 30 余年, 16 位匯編語言代碼,1M 內存尋址,調用中斷一條條執(zhí)行的理念和方式竟然一點都沒有改變,雖然經各大主板商不懈努力,BIOS 也有了 ACPI(Advanced Configuration Power Interface)一種基于BIOS 的系統(tǒng)電源管理方案 (是由BIOS實現(xiàn))提供CPU和外設的電源管理功能;當空閑的時候會被OS調用提供CPU的電源管理。 、USB 設備支持,PnP 即插即用支持等新東西,但是這在根本上沒有改變 BIOS 的本質,而 Intel 為了遷就這些舊技術,不得不在一代又一代處理器中保留著 16 位實模式(否則根本無法開機的)。但是,英特爾在 2001 年開發(fā)了全新的安騰處理器,采用 IA-64 架構,并推出了全新的 EFI。后來證明,安騰處理器、IA-64 架構沒有推廣開來,而 EFI 和后繼的 UEFI 卻發(fā)揚光大,成為現(xiàn)在電腦的主要預啟動環(huán)境。

EFI,是 Extensible Firmware Interface 的詞頭縮寫,直譯過來就是可擴展固件接口,它是用模塊化、高級語言(主要是 C 語言)構建的一個小型化系統(tǒng),它和 BIOS 一樣,主要在啟動過程中完成硬件初始化,但它是直接利用加載 EFI 驅動的方式,識別系統(tǒng)硬件并完成硬件初始化,徹底摒棄讀各種中斷執(zhí)行。EFI 驅動并不是直接面向 CPU 的代碼,而是由 EFI 字節(jié)碼編寫成, EFI 字節(jié)碼是專用于 EFI 的虛擬機器指令,需要在 EFI 驅動運行環(huán)境 DXE 下解釋運行,這樣 EFI 既可以實現(xiàn)通配,又提供了良好的兼容。此外,EFI 完全是 32 位或 64 位,摒棄 16 位實模式,在 EFI 中就可以實現(xiàn)處理器的最大尋址,因此可以在任何內存地址存放任何信息。另外,由于 EFI 的驅動開發(fā)非常簡單,基于 EFI 的驅動模型原則上可以使 EFI 接觸到所有硬件功能,在 EFI 上實現(xiàn)文件讀寫,網絡瀏覽都是完全可能的。BIOS 上的的 CMOS 設置程序在 EFI 上是作為一個個 EFI 程序來執(zhí)行的,硬件設置是硬件設置程序、而啟動管理則是另一個程序,保存 CMOS 又是另一個程序,雖然它們在形式的 Shell 上是在一起的。

EFI 在功能上完全等同于一個輕量化的 OS(操作系統(tǒng)),但是 EFI 在制定時就定位到不足以成為專業(yè) OS 的地位上,首先,它只是一個硬件和操作系統(tǒng)間的一個接口;其次,EFI 不提供中斷訪問機制,EFI 必須用輪詢的方式檢查并解釋硬件,較 OS 下的驅動執(zhí)行效率較低,最后,EFI 只有簡單的存儲器管理機制,在段保護模式下只將存儲器分段,所有程序都可以存取任何一段位置,不提供真實的保護服務。

伴隨著 EFI,一種全新的 GUID 磁盤分區(qū)系統(tǒng)(GPT)被引入支持,傳統(tǒng) MBR 磁盤只能存在 4 個主分區(qū),只有在創(chuàng)建主分區(qū)不足 4 個時,可以建立一個擴展分區(qū),再在其上建立被系統(tǒng)識別的邏輯分區(qū),邏輯分區(qū)也是有數量的,太多的邏輯分區(qū)會嚴重影響系統(tǒng)啟動,MBR硬盤分區(qū)最大僅支持2T容量,對于現(xiàn)在的大容量硬盤來說也是浪費。GPT 支持任意多的分區(qū),每個分區(qū)大小原則上是無限制的,但實際上受到 OS 的規(guī)定限制不能做到無限,不過比 MBR 的 2T 限制是非常重要的進步。GPT 的分區(qū)類型由 GUID 表唯一指定,基本不可能出現(xiàn)重復,其中的 EFI 系統(tǒng)分區(qū)可以被 EFI 存取,用來存取部分驅動和應用程序,雖然這原則上會使 EFI 系統(tǒng)分區(qū)變得不安全,但是一般這里放置的都是些“邊緣”數據,即使其被破壞,一般也不會造成嚴重后果,而且也能夠簡單的恢復回來。

當 EFI 發(fā)展到 1.1 的時候,Intel 決定把 EFI 公之于眾,于是后續(xù)的 2.0 吸引了眾多公司加入,EFI 也不再屬于英特爾,而是屬于了 Unified EFI Form 的國際組織,EFI 在 2.0 后也遂改稱為 UEFI,UEFI 其中的 EFI 和原來是一個意思,U 則是 Unified(一元化、統(tǒng)一)的縮寫,所以 UEFI 的意思就是“統(tǒng)一的可擴展固件接口”,與前身 EFI 相比,UEFI 主要有以下改進:

  • 首先,UEFI 具有完整的圖形驅動功能,之前的 EFI 雖然原則上加入了圖形驅動,但為了保證 EFI 和 BIOS 的良好過渡,EFI 多數還是一種類 DOS 界面(仍然是 640480 VGA 分辨率),只支持 PS/2 鍵盤操作(極少數支持鼠標操作),不支持 USB 鍵盤和鼠標。到了 UEFI,則是擁有了完整的圖形驅動,無論是 PS/2 還是 USB 鍵盤和鼠標,UEFI 一律是支持的,而且 UEFI 在顯卡也支持 GOP VBIOS 的時候,顯示的設置界面是顯卡高分辨率按 640480或1024*768 顯示,因此畫面雖小但很清楚,但是這樣會導致屏幕周圍大片留黑,不過魚和熊掌不可兼得,除非 UEFI 默認窗口大小也是最高分辨率。
  • 其次,UEFI 具有一個獨特的功能,安全啟動,而 EFI 是沒有安全啟動的,安全啟動(Secure Boot),實際上通俗的解釋是叫做固件驗證。開啟 UEFI 的安全啟動后,主板會根據 TPM 芯片(或者 CPU 內置的 TPM )記錄的硬件簽名對各硬件判斷,只有符合認證的硬件驅動才會被加載,而 Win8 以后的 Windows 則是在操作系統(tǒng)加載的過程中對硬件驅動繼續(xù)查簽名,符合 Windows 記錄的硬件才能被 Windows 加載,這在一定程度上降低了啟動型程序在操作系統(tǒng)啟動前被預加載造成的風險,但是這也會造成系統(tǒng)安裝變得壟斷。

無論 EFI 還是 UEFI,都必須要有預加載環(huán)境、驅動執(zhí)行環(huán)境、驅動程序等必要部分組成,為了支持部分舊設備(如在 UEFI 下掛載傳統(tǒng) MBR 硬盤,不支持 UEFI 啟動的顯卡在 UEFI 下仍然支持運行等),還需要一個 CSM 兼容性支持模塊、EFI 或 UEFI 都是僅支持 GPT 磁盤引導系統(tǒng)的,后面的內容會具體談一下 EFI 或 UEFI 啟動計算機的過程。

從這里,我們就能發(fā)現(xiàn),之前的 BIOS 引導啟動需要配合 MBR 的傳統(tǒng)磁盤分區(qū)進行,而后來者 UEFI 則是引導新的 GPT 磁盤分區(qū)進行啟動。所以現(xiàn)在主流的啟動流程可以簡單概括如下兩種:

  • BIOS + MBR
  • UEFI + GPT

如何查看當前計算機是什么方式引導啟動呢?

在“此電腦”上右鍵選擇“管理”,彈出“計算機管理”選擇“磁盤管理”,如果能找到一個“EFI系統(tǒng)分區(qū)”,那么就是UEFI引導方式了。
Windows 引導啟動流程詳述(BIOS-UEFI),Windows驅動,計算機基礎,windows

Linux 下如何查看 BIOS 大???

Linux 下可以查看 BIOS 大小通過 dmidecode 這個命令來查看。也就是讀取 BIOS 的信息。

root@aliyun:~# dmidecode -t bios -q  # 方法一
BIOS Information
        Vendor: SeaBIOS
        Version: 8c24b4c
        Release Date: 04/01/2014
        Address: 0xE8000
        Runtime Size: 96 kB
        ROM Size: 64 kB --- ROM Size,在此可以看到,BIOS 大小為 64K。
        Characteristics:
                BIOS characteristics not supported
                Targeted content distribution is supported
        BIOS Revision: 0.0

root@aliyun:~# cd /sys/class/dmi/id/  # 方法二
root@aliyun:id# ls
bios_date          chassis_serial   modalias        product_serial   sys_vendor
bios_vendor        chassis_type     power           product_uuid     uevent
bios_version       chassis_vendor   product_family  product_version
chassis_asset_tag  chassis_version  product_name    subsystem

啟動流程詳述

前面,我們講述了關于 BIOS 和 UEFI 的由來和基本作用。了解了它們在計算機啟動過程中所需要發(fā)揮的作用后,下面就來詳細看一下在計算機上電后它們具體是如何執(zhí)行和操作來引導操作系統(tǒng)正常啟動的。

使用 BIOS 進行系統(tǒng)啟動流程

BIOS 用于計算機硬件自檢、CMOS 設置、引導操作系統(tǒng)啟動、提供硬件 I/O、硬件中斷等4項主要功能,因此 BIOS 程序可以分為若干模塊,主要有 Boot Block 引導模塊、CMOS 設置模塊、擴展配置數據(ESCD)模塊、DMI 收集硬件數據模塊,其中引導模塊直接負責執(zhí)行 BIOS 程序本身入口、計算機基本硬件的檢測和初始化,ESCD 用于 BIOS 與 OS 交換硬件配置數據,DMI 則充當了硬件管理工具和系統(tǒng)層之間接口的角色,通過 DMI,用戶可以直觀地獲得硬件的任何信息,CMOS 設置模塊就是實現(xiàn)對硬件信息進行設置,并保存在 CMOS 中,是除了啟動初始化以外 BIOS 程序最常用的功能。

BIOS 本身是匯編語言代碼,是在 16 位實模式下調用 INT 13H 中斷執(zhí)行的,由于 x86-64 是一個高度兼容的指令集,也為了遷就BIOS的16位實模式的運行環(huán)境,所以即使現(xiàn)在的 CPU 都已是 64 位,如果還是在 BIOS 啟動(基本見于 09 年以前的主板),在開機時仍然都是在 16 位實模式下執(zhí)行的。16 位實模式直接能訪問的內存只有 1MB,就算你安了 4G、8G 或者 16G 還是 32G 內存,到了 BIOS 上一律只先認前 1MB。在這 1MB 內存中,前 640K 稱為基本內存,后面 384K 內存留給開機必要硬件和各類 BIOS 本身使用,具體如下圖所示:

Windows 引導啟動流程詳述(BIOS-UEFI),Windows驅動,計算機基礎,windows

  1. 如上圖所示,當按下 power on 之后,此時的 CPU 處于 real address mode。由硬件負責將 BIOS 64K 的內容加載到 0xF00000xFFFFF(64K 內存)。并將 CS(code segment) 置為 0xF000,IP(instruction pointer) 置為 0xFFF0。組合起來的內存地址 PC 就是 0xFFFF0
  2. 此時 CPU 從 PC = 0xFFFF0 處開始取指、執(zhí)行。那么從 0xFFFF00xFFFFF 只有 16Bytes??臻g太小了,能放啥呢?但是可以跳到其他地方去執(zhí)行啊。不錯,這里存放的有一條指令是 jmp far f000:e05b, 組合起來就是 0xfe05b。注意這個地址可是在 0xF00000xFFFFF 范圍之內,也就是這條指令跳轉到 BIOS 內部的代碼去執(zhí)行。從 0xFE05B0xFFFF0 將近 8K 內存,代碼不少。
  3. 此時 CPU 從 PC = 0xfe05b 開始取值、執(zhí)行。具體干啥呢?就是執(zhí)行所謂的開機自檢。檢查計算機硬件。同時去找啟動扇區(qū),那什么才是啟動扇區(qū)呢?若 0 盤 0 道 1 扇區(qū)最后兩個字節(jié)分別是 0x55,0xaa,那就是啟動區(qū)。很像 java class 文件中的魔數,就是標記一下。同時將找到的啟動扇區(qū)(512Bytes) 復制到內存 0x7C000x7DFF(512Bytes) 處。最后會將 CS 置為 0x0000, IP 置為 0x7C00,組合起來就是 0x7C00。
  4. 此時 CPU 從 PC = 0x7C00 開始取值、執(zhí)行。具體干啥呢?這就是開發(fā)人員可以決定的了。在啟動扇區(qū)上可以是加載 OS Kernel 的代碼,硬盤分區(qū),boot loader 等。

將上述細節(jié)流程進行概括如下:

  1. 上電并穩(wěn)定后,CPU執(zhí)行地址 0xFFFF0H 處指令,此處為BIOS程序;

  2. BIOS 進行硬件自檢,沒有問題后加載硬盤的第一個扇區(qū)到內存0x7c00H 處,第一個扇區(qū)為 MBR(Master
    Boot Record),MBR 包含執(zhí)行程序和分區(qū)表;

  3. CPU 開始執(zhí)行 MBR 程序,查找第一個活動分區(qū),把活動分區(qū)的第一個扇區(qū)加載到內存中,活動分區(qū)第一個扇區(qū)為 PBR(Partition Boot Record);

  4. CPU 開始執(zhí)行 PBR,第一個指令就是跳過 BPB(BIOS Parameter Block)到可執(zhí)行代碼處;BPB 包含比較多參數,有族的大小、MFT 記錄大小、MFT 位置等,用于讀取 NTFS 文件;

  5. PBR 讀取 VBR(Volume BootRecord,占用分區(qū)開始的16扇區(qū))剩余的 15 扇區(qū)到內存中;接著 CPU 跳轉到 0x07C0:027A 處,執(zhí)行 BOOTMGR 代碼(第二個扇區(qū)中);

  6. 開始尋找 bootmgr.exe,找不到則尋找 ntldr.exe(win vista之前的系統(tǒng));

  7. CPU 加載并跳轉到 bootmgr.exe 處執(zhí)行,讀取 BCD 文件,如果含有多個系統(tǒng),則列舉顯示供用戶選擇;

  8. 選擇的是 Windows 則讀取 winload.exe 文件到內存中,CPU 跳轉到winload.exe 處執(zhí)行,讀取文件 \windows\bootstat.dat,有需要則顯示引導菜單,比如安全引導等等;接著加載內核程序 Ntoskrnl.exe,相關輔助 HAL.dll、CI.dll、PSSHED.dll、BootVID.dll,把 CPU 執(zhí)行權交給內核程序;

  9. 內核程序執(zhí)行系統(tǒng)初始化。

Windows 引導啟動流程詳述(BIOS-UEFI),Windows驅動,計算機基礎,windows

使用 UEFI 進行系統(tǒng)啟動流程

前面已經介紹了 UEFI 的由來,所以相比 BIOS 來說 UEFI 會在擴展性、易用性等等方面有很大的改進。下面就來詳細講述 UEFI 的啟動執(zhí)行流程。

一般地,預加載環(huán)境和驅動執(zhí)行環(huán)境是存儲在 UEFI(UEFI BIOS)芯片中的,當打開電源開關時,電腦的主要部件都開始有了供電,與 BIOS 不同的是,UEFI 預加載環(huán)境首先開始執(zhí)行,負責 CPU 和內存(是全部容量)的初始化工作,這里如出現(xiàn)重要問題,電腦即使有報警喇叭也不會響,因為 UEFI 沒有去驅動8255發(fā)聲,不過預加載環(huán)境只檢查 CPU 和內存,如果這兩個主要硬件出問題,屏幕沒顯示可以立即確定,另外一些主板會有提供 LED 提示,可根據 CPU 或內存亮燈大致判斷故障。

CPU 和內存初始化成功后,驅動執(zhí)行環(huán)境(DXE)載入,當 DXE 載入后,UEFI 就具有了枚舉并加載 UEFI 驅動程序的能力,在此階段,UEFI 會枚舉搜索各個硬件的 UEFI 驅動并相繼加載,完成硬件初始化工作,這相比 BIOS 的讀中斷加載速度會快的多,同樣如加載顯卡的 UEFI 驅動成功,電腦也會出現(xiàn)啟動畫面,硬件驅動全部加載完畢后,最后同 BIOS 一樣,也得去啟動操作系統(tǒng)。

在啟動操作系統(tǒng)的階段,同樣是根據啟動記錄的啟動順序,轉到相應設備(僅限 GPT 設備,如果啟動傳統(tǒng) MBR 設備,則需要打開 CSM 支持)的引導記錄,引導操作系統(tǒng)并進入,這里需要注意的是,UEFI 在檢測到無任何操作系統(tǒng)啟動設備時,會直接進入 UEFI 設置頁面,而不是像 BIOS 那樣黑屏顯示相關信息。

  1. 按下電源鍵,電源向主板以及其它設備供電,剛開始電壓不穩(wěn),主板會持續(xù)發(fā)送 RESET 信號給 CPU,CPU 執(zhí)行初始化。當電壓穩(wěn)定后,主板停止發(fā)送 RESET 信號,CPU 開始執(zhí)行指令;

  2. CPU 讀取 UEFI 指令,執(zhí)行 UEFI 初始化,執(zhí)行其它設備的初始化;

  3. 查找 EFI 分區(qū),EFI 分區(qū)不需要一定是第一個分區(qū);

  4. 加載 \EFI\Boot\bootx64.efi,在安裝 Windows 時實際上會使用\EFI\Microsoft\Boot\bootmgfw.efi 的內容替換到 \EFI\Boot\bootx64.efi,所以\EFI\Boot\bootx64.efi 其實就是 \EFI\Microsoft\Boot\bootmgfw.efi

  5. bootmgfw.efi 會讀取 BCD 文件,BCD 是一個數據庫文件,如果包含多個系統(tǒng),信息會包含在 BCD 中,通過顯示一個系統(tǒng)列表供用戶選擇;

  6. BCD 中包含每個系統(tǒng)的引導文件的路徑,Windows 的是\Windows\System32\winload.efi,加載到內存中并執(zhí)行;

  7. winload.efi 讀取 \Windows\bootstat.dat 文件,有需要則顯示引導菜單,比如安全引導等等;接著加載內核程序 Ntoskrnl.exe,相關輔助HAL.dll、CI.dll、PSSHED.dll、BootVID.dll,把 CPU 執(zhí)行權交給內核程序;

  8. 內核程序執(zhí)行系統(tǒng)初始化。

Windows 引導啟動流程詳述(BIOS-UEFI),Windows驅動,計算機基礎,windows

從 Intel 官方的資料,可以詳細講 UEFI 的執(zhí)行流程概括成如下七個階段:

  • SEC(安全驗證)->
  • PEI(EFI前期初始化)->
  • DXE(驅動執(zhí)行環(huán)境)->
  • BDS(啟動設備選擇)->
  • TSL(操作系統(tǒng)加載前期)->
  • RT(系統(tǒng)系統(tǒng)運行階段)->
  • AL(系統(tǒng)災難恢復期或關機)

如下圖所示:

Windows 引導啟動流程詳述(BIOS-UEFI),Windows驅動,計算機基礎,windows

詳細說明 UEFI 這七個階段如下:

SEC階段

作為計算機上電后第一階段,SEC會做一些與硬件相關的驗證,并且將控制權交給PEI Foundation。(注:IA-32和Itanium會有差別)

SEC階段主要功能:

處理平臺啟動及重啟信號
創(chuàng)建臨時存儲區(qū)域
作為可信系統(tǒng)的根
傳遞參數給下一階段(既PEI Foundation)
1、處理平臺啟動機重啟信號:

系統(tǒng)上電信號處理,系統(tǒng)重啟信號處理,系統(tǒng)異常信號處理。

2、創(chuàng)建臨時存儲區(qū)域:

SEC階段需要初始化一些臨時內存(這時各種外設及內存并沒有被初始化),作為程序的運行載體,僅對CPU和CPU內部Cache作為臨時RAM,區(qū)別于普通的內存,我們稱它為CAR(Cache As RAM)。因為內存并沒有初始化,需要將Cache配置成為no-eviction,當read/write miss時候并不會向內存發(fā)出miss事件,如果這時向內存發(fā)出miss事件會導致平臺故障。

3、作為可信系統(tǒng)的根

任何安全設計中,后續(xù)模塊獲得控制的完整性,由調用者證實必須有根,既SEC階段作為整個可信系統(tǒng)的根。

4、傳遞參數給下一階段(既PEI Foundation)

SEC階段需要為PEI階段做準備,最終SEC需要把控制權交給PEI。

需要準備如下信息給 PEI Foundation:

  • 當前的系統(tǒng)狀態(tài),PEI可以根據這些狀態(tài)判斷系統(tǒng)的健康狀況。(注:IA-32和Itanium會有差別)
  • BFV(Boot Firmware Volume)的地址和大小
  • 臨時RAM的地址和大小
  • 棧的地址和大小
  • EFI_SEC_HOB_DATA_PPI這個HOB(Optional)

PEI階段

PEI階段資源依然十分有限,PEI后期才會初始化內存,主要功能就是初始化一些硬件設備,并且給DXE準備執(zhí)行環(huán)境,通過HOB傳遞給DXE Foundation,最終將控制權交給DXE Foundation。

初始化內存
準備memory相關的HOB
準備FV相關的HOB
控制權交給DXE Foundation
PEI階段主要由PEI Foundation、PEIM Dispatcher來處理上述操作。

PEI Foundation:負責初始化gPeiServices和流程執(zhí)行
PEI Dispatcher:找出系統(tǒng)中所有的PEIM,并根據PEIM之間的依賴關系按順序執(zhí)行PEIM,其中CPU/Memory初始化都是由特定的PEIM來完成的,其中DxeIpl來Load DxeCore。

PEI階段流程

Windows 引導啟動流程詳述(BIOS-UEFI),Windows驅動,計算機基礎,windows

DXE階段

這一階段,內存已經完全可以使用了,這個階段進行大量的工作,主要是提供:

  • DXE Foundation:負責初始化一系列服務如BootServices/RuntimeServices/DxeServices,和安裝一些ConfigurationTable。
  • DXE Dispatcher:負責分發(fā)DXE Drivers,包括MM Drivers也是在這個階段共同分發(fā)。
  • DXE Drivers:負責初始化一些Protocol及安裝Binding Driver為后續(xù)使用。

BDS階段

BDS階段理論上也是DXE階段的一部分,主要負責執(zhí)行可啟動策略,主要包括:

  • 初始化控制臺設備
  • 為設備加載相關的驅動,由Binding Driver來決定怎么加載。
  • 為BIOS Setup做準備。
  • 根據系統(tǒng)設置加載和啟動可啟動選項。

TSL階段

由 BDS 階段 LoadImage 并 StartImage 的 grub 鏡像。

這一階段由 grub 執(zhí)行,資源由 UEFI kernel 提供,當 grub 調用 ExitBootServices 后就進入系統(tǒng) Runtime 階段。

RT階段

這階段控制權完全交給了 OS,保留 RuntimeServices 交給 OS 使用, MM Mode 脫離于 OS 獨立運行。

AL階段

在 RT 階段,如果遇到災難性錯誤,固件提供錯誤處理機制和災難恢復機制,UEFI/PI Spec 都未定義該階段的行為。

總結

綜上對 BIOS 和 UEFI 啟動計算機過程的敘述,可以概括為:

  • BIOS 先要對 CPU 初始化,然后跳轉到 BIOS 啟動處進行 POST 自檢,此過程如有嚴重錯誤,則電腦會用不同的報警聲音提醒,接下來采用讀中斷的方式加載各種硬件,完成硬件初始化后進入操作系統(tǒng)啟動過程;
  • UEFI 則是運行預加載環(huán)境先直接初始化 CPU 和內存,CPU 和內存若有問題則直接黑屏,其后啟動 PXE 采用枚舉方式搜索各種硬件并加載驅動,完成硬件初始化,之后同樣進入操作系統(tǒng)啟動過程。

此外,BIOS 是 16 位匯編語言程序,只能運行在 16 位實模式,可訪問的內存只有 1MB,而 UEFI 是 32 位或 64 位高級語言程序(C 語言程序),突破實模式限制,可以達到要求的最大尋址。

參考文獻

Intel 資料:

  • https://edc.intel.com/content/www/us/en/design/products-and-solutions/software-and-services/firmware-and-bios/firmware-interface-table/
  • https://www.intel.cn/content/www/cn/zh/developer/articles/tool/unified-extensible-firmware-interface.html?wapkw=UEFI

知乎資料:

  • https://zhuanlan.zhihu.com/p/483888207
  • https://zhuanlan.zhihu.com/p/342088326
  • https://zhuanlan.zhihu.com/p/54108702
  • https://zhuanlan.zhihu.com/p/283054574
  • https://zhuanlan.zhihu.com/p/36976698#:~:text=1%20BIOS%E5%8A%A0%E7%94%B5%E8%87%AA%E6%A3%80%EF%BC%88Power%20On%20Self%20Test%20–%20POST%EF%BC%89%E3%80%82%202,%E6%A3%80%E6%9F%A5MBR%E7%9A%84%E7%BB%93%E6%9D%9F%E6%A0%87%E5%BF%97%E4%BD%8D%E6%98%AF%E5%90%A6%E7%AD%89%E4%BA%8E55AAH%EF%BC%8C%E8%8B%A5%E4%B8%8D%E7%AD%89%E4%BA%8E%E5%88%99%E8%BD%AC%E5%8E%BB%E5%B0%9D%E8%AF%95%E5%85%B6%E4%BB%96%E5%90%AF%E5%8A%A8%E8%AE%BE%E5%A4%87%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%B2%A1%E6%9C%89%E5%90%AF%E5%8A%A8%E8%AE%BE%E5%A4%87%E6%BB%A1%E8%B6%B3%E8%A6%81%E6%B1%82%E5%88%99%E6%98%BE%E7%A4%BA%22NO%20ROM%20BASIC%22%E7%84%B6%E5%90%8E%E6%AD%BB%E6%9C%BA%E3%80%82%20%E5%BD%93%E6%A3%80%E6%B5%8B%E5%88%B0%E6%9C%89%E5%90%AF%E5%8A%A8%E8%AE%BE%E5%A4%87%E6%BB%A1%E8%B6%B3%E8%A6%81%E6%B1%82%E5%90%8E%EF%BC%8CBIOS%E5%B0%86%E6%8E%A7%E5%88%B6%E6%9D%83%E4%BA%A4%E7%BB%99%E7%9B%B8%E5%BA%94%E5%90%AF%E5%8A%A8%E8%AE%BE%E5%A4%87%E7%9A%84MBR%E3%80%82%203%20%E6%A0%B9%E6%8D%AEMBR%E4%B8%AD%E7%9A%84%E5%BC%95%E5%AF%BC%E4%BB%A3%E7%A0%81%E5%90%AF%E5%8A%A8%20%E5%BC%95%E5%AF%BC%E7%A8%8B%E5%BA%8F%20%E3%80%82

w3school 資料:

  • https://www.w3cschool.cn/bioswqsc/zuxjo6.html

CSDN 資料:文章來源地址http://www.zghlxwxcb.cn/news/detail-515782.html

  • https://blog.csdn.net/power_to_go/article/details/106645417#:~:text=x86%20%E6%9E%B6%E6%9E%84%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%90%AF%E5%8A%A8%E6%B5%81%E7%A8%8B%201%20%E5%A6%82%E4%B8%8A%E5%9B%BE%E6%89%80%E7%A4%BA%EF%BC%8C%E5%BD%93%E6%8C%89%E4%B8%8B%20power%20on%20%E4%B9%8B%E5%90%8E%EF%BC%8C%E6%AD%A4%E6%97%B6%E7%9A%84%20CPU,%E4%BB%8E%20PC%20%3D%200x7C00%20%E5%BC%80%E5%A7%8B%E5%8F%96%E5%80%BC%E3%80%81%E6%89%A7%E8%A1%8C%E3%80%82%20%E5%85%B7%E4%BD%93%E5%B9%B2%E5%95%A5%E5%91%A2%EF%BC%9F%20%E8%BF%99%E5%B0%B1%E6%98%AF%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E5%8F%AF%E4%BB%A5%E5%86%B3%E5%AE%9A%E7%9A%84%E4%BA%86%E3%80%82%20

到了這里,關于Windows 引導啟動流程詳述(BIOS-UEFI)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 如何在Windows 10中創(chuàng)建引導到UEFI固件設置的快捷方式

    如何在Windows 10中創(chuàng)建引導到UEFI固件設置的快捷方式

    大多數計算機都有一個特定的鍵,當計算機啟動時按下該鍵,用戶可以訪問UEFI(固件)設置。然而,我們經常在錯過給定的時間段時按鍵太晚,因為筆記本電腦默認情況下只需等待幾秒鐘就可以啟動到?Windows。 另一個引導到 UEFI?設置的選項是重新啟動到高級啟動選項,然后

    2024年02月13日
    瀏覽(32)
  • 舊電腦通過轉接卡安裝nvme固態(tài)硬盤無需修改bios即可用舊SATA硬盤實現(xiàn)UEFI啟動win10/11

    舊電腦通過轉接卡安裝nvme固態(tài)硬盤無需修改bios即可用舊SATA硬盤實現(xiàn)UEFI啟動win10/11

    注意:本文探討的是支持UEFI啟動的舊電腦。MBR啟動個人感覺已經被淘汰,作者不再做研究。 主要材料: PCI-E轉M.2的轉接卡(根據你舊電腦支持情況選擇) 支持NVME協(xié)議M.2接口的固態(tài)硬盤 U盤1個(8G以上)制作PE-啟動盤(支持UEFI啟動)。 有一臺可正常使用電腦。(制作啟動盤

    2024年02月04日
    瀏覽(40)
  • 對BIOS進行簡單快速的設置更改,就能啟用安全引導來安裝Windows 11

    對BIOS進行簡單快速的設置更改,就能啟用安全引導來安裝Windows 11

    本文介紹如何在UEFI/BIOS中啟用安全引導,以便繼續(xù)安裝Windows 11。 啟用安全引導最簡單的方法是通過UEFI/BIOS進行。它通常被列為BIOS中的眾多選項之一,因此你只需打開它即可啟用它。 1、啟動,或重新啟動你的電腦或筆記本電腦,一旦開始通電,重復按鍵盤命令進入UEFI/BIOS。

    2024年02月04日
    瀏覽(17)
  • 【UEFI/BIOS】UEFI Shell Command (UEFI Shell 命令)篇目一

    【UEFI/BIOS】UEFI Shell Command (UEFI Shell 命令)篇目一

    命令 作用 alias 在UEFI Shell環(huán)境中顯示、創(chuàng)建、刪除別名 attrib 顯示或更改文件或目錄的屬性 bcfg 操作Boot或者驅動程序順序 cd 顯示或更改當前目錄 comp 以字節(jié)為單位比價兩個文件的內容 connet 將驅動程序綁定到特定的設備并啟動該驅動程序 cp 將一個或多個源文件或目錄復制到目

    2024年02月07日
    瀏覽(27)
  • BIOS MBR UEFI GPT詳解

    BIOS MBR UEFI GPT詳解

    名詞解釋 1、啟動方式: BIOS:Basic Input Output System,中文名稱\\\"基本輸入輸出系統(tǒng)\\\",也叫?Legacy BIOS。 UEFI:Unified Extensible Firmware Interface,中文名稱\\\"統(tǒng)一的可擴展固件接口\\\"。 2、硬盤分區(qū): MBR分區(qū):Master Boot Record,中文名稱\\\"主引導記錄\\\"。 GPT分區(qū):GUID Partition Table,中文名稱

    2024年02月08日
    瀏覽(22)
  • 【BIOS/UEFI硬件儲備知識】內存模組結構

    【BIOS/UEFI硬件儲備知識】內存模組結構

    Channel ?????????主板上,內存插槽設計分為2SPC(2 Slot per Channel)和1SPC(1 Slot per Channel)。圖示是一個2SPC,即一個通道兩個插槽,也就是可以插兩個DIMM。 Rank ? ? ????????內存條通過內存通道連接到內存控制器,一組可以被一個內存通道同時訪問的芯片稱為一個Rank。

    2024年02月10日
    瀏覽(29)
  • 【BIOS/UEFI】HII 基本框架及概述

    【BIOS/UEFI】HII 基本框架及概述

    ? ? ? ? HII(Human Interface Infrastructure )定義了一套管理用戶輸入的基礎框架。HII數據庫主要提供用戶安裝、卸載以及使用各種字符串、字體和圖片等資源的接口。 ????????HID Devices 是用戶輸入設備,如鍵盤、串口和網絡;Display Devices 是輸出設備,如顯示器、串口和網絡。

    2024年02月10日
    瀏覽(129)
  • 龍芯電腦(LoongArch)如何升級BIOS(UEFI固件)

    龍芯電腦(LoongArch)如何升級BIOS(UEFI固件)

    龍芯UEFI 獲取地址(包括3A5000 臺式機,筆記本,3C5000 服務器): gitee: https://gitee.com/loongson/Firmware github: https://github.com/loongson/Firmware 根據自身機型選擇相應的固件(Image目錄有相應機型的實物照片),千萬注意一旦更新錯了固件機器可能會變磚。 插好裝有固件的U 盤(U盤格式

    2024年02月10日
    瀏覽(132)
  • 【BIOS/UEFI硬件知識儲備】內存——主板布線、雙通道

    【BIOS/UEFI硬件知識儲備】內存——主板布線、雙通道

    ????????內存走線方式分為:Direct Topology(直連)、T-Topology(T-Type)、Daisy-Chain Topology(D-Type)。直連的布線就是由CPU直接拉到對應通道的槽位上,獨立布線,各個通道互不影響,也就是一個槽就是一個通道。T-Type和D-Type用于一個通道對應兩個插槽的情況。 T-Type ?????

    2024年01月16日
    瀏覽(91)
  • windows啟動引導管理

    windows啟動引導管理

    當電腦上安裝多個系統(tǒng)時,在啟動引導階段,會出現(xiàn)啟動管理器,Windows上是\\\"Windows啟動管理器\\\",Ubuntu等linux發(fā)行版上也有他們的啟動管理器。 Windows啟動管理器界面類似這樣: 如果需要配置默認啟動項, win + r ,輸入 msconfig ,或者在 開始 菜單中搜\\\"系統(tǒng)配置\\\": 在\\\"引導\\\"選項

    2024年02月04日
    瀏覽(13)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包