Windows 操做系統引導過程 BIOS & EFI

引導過程

引導過程指的是從計算機通電那一瞬間到CPU開始執行操做系統代碼時的整個過程。在這個很是初期的階段彙總,CPU執行標準的啓動代碼。這部分代碼須要對硬件設備進行探測,尋找最有可能啓動的操做系統而且根據用戶定義的參數啓動這個操做系統。html

傳統形式的引導:BIOS

大部分PC機仍然使用BIOS引導,默認(通用)的引導加載器(boot loader)。BIOS是一種類型的固件,提供一些簡單的菜單項,用戶經過這寫菜單項能夠修改主板參數、引導設備順序等內容。固件(firmware)能夠看作一種軟件,這種軟件被寫入芯片,因此是「固化」的。固件代碼自己能夠保存在只讀存儲器(ROM)中。也可保存在可編程只讀存儲器(PROM)或者電可擦除只讀存儲器(EEPROM)中,後兩種形式更爲常見。ios

BIOS芯片主要存放:編程

  • 自診斷程序:經過讀取CMOS中的硬件配置,並對其自檢和初始化
  • CMOS設置程序:引導過程當中,用特殊熱鍵啓動,進行設置後,存入CMOS RAM中
  • 系統自舉裝載程序(bootstrap):在自檢成功後將磁盤相對0道0扇區上的引導程序裝入內存運行
  • 主要I/O設置的驅動程序和中斷服務

BIOS和固件的功能是同樣的:加載一些基本的自舉(bootstrap)代碼給CPU執行。自舉程序和BIOS或者固件的職責是:初始化硬件、檢測硬件、定位這些引導設備、執行引導加載器程序;引導加載器程序的職責是:尋找選擇的操做系統、將全部必要的命令行參數傳遞給操做系統內核。bootstrap

傳統的BIOS引導操做系統(Windows)以下圖(引用威鋒網):url

計算機開機後,固化在ROM中的BIOS會被加載到內存運行,BIOS自檢完畢後就會加載COMS的參數,經過COMS的參數,BIOS加載啓動磁盤的MBR到內存運行。經過運行MBR的代碼,記錄在MBR分區表中,標記爲活動分區的磁盤分區PBR(Partition Boot Record)被加載到內存運行,PBR在運行後可加載操做系統加載器(如Windows的bootmgr)的代碼到內存運行,操做系統加載器可加載操做系統內核到內存運行,進而完成BIOS的引導流程。操作系統

下一代BIOS:EFI

EFI(Extensible Firmware Interface)是一種取代傳統BIOS的技術。BIOS是一個固定的程序,並且一般是封閉的。EFI是一個全功能的運行時系統,在引導期間提供了更爲強大的接口,甚至在以後的運行時也提供了接口,EFI程序一般是引導加載器。EFI程序其實是一個二進制程序。命令行

EFI的通常由一下幾部分組成:htm

  • Pre-EFI初始化模塊
  • EFI驅動執行環境
  • EFI驅動程序
  • 兼容性支持模塊(CSM)
  • EFI高層應用
  • GUID磁盤分區

###NVRAM變量接口

NVRAM是固件接口中一個很是強大的功能,並且這顯然是BIOS沒有的功能,NARAM變量是在系統範圍內存在的,操做系統和固件自己均可以訪問。通常來講。NVRAM變量能夠分爲如下幾類:內存

  • **引導相關的變量:**用於指定要引導的內核和根文件系統,還負責向內核傳遞參數。
  • **固件內部變量:**固件使用的變量,通常被操做系統忽略
  • **臨時變量:**根據須要設置或清空,一般在從新引導的時候不會保留

EFI引導操做系統(Windows)過程以下圖(引用威鋒網):

計算機開機後,就會加載固化在只讀存儲器RAM中的pre-EFI初始化程序,進行主橋及存儲器的初始化工做,緊接着載入EFI驅動執行環境(DXE),EFI驅動會被相繼加載及初始化,接着加載、啓動EFI系統,在EFI系統啓動後,GUID分區表就會被識別,以後EFI系統經過加載 NVRAM的參數來決定是否啓動BootCamp程序(蘋果雙重引導的解決方案),不啓動BootCamp程序就會啓動啓動裝載程序(Boot Loader)加載操做系統內核,完成EFI的引導流程。

參考博客:

Mac 系統引導過程概述 & BootCamp 的祕密

參考文獻:

百度百科:bios

百度百科:EFI

相關文章
相關標籤/搜索