热门问题
时间线
聊天
视角
啟動程式
来自维基百科,自由的百科全书
Remove ads
啟動程式(英語:bootloader)是指在電腦系統中負責初始化周邊裝置、啟動作業系統的程式。在個人電腦上,當BIOS完成開機硬體檢測後,便會由磁碟上的主開機紀錄或是主機板的UEFI韌體讀取作業系統對應的啟動程式,再由啟動程式載入作業系統。Linux所使用的GNU GRUB、以及微軟為Windows開發的Windows開機管理程式,都屬於啟動程式的一種。
![]() |
啟動流程
啟動的英文「boot」語源來自「鞋帶」(bootstrap),取成語「拉著自己的鞋帶站起來」(Pull oneself up by one's bootstraps)、自立振作之意。
在普通的個人電腦上,引導程序通常分為兩部分:第一階段引導程序位於主引導記錄(MBR),用以引導位於某個分區上的第二階段引導程序,如NTLDR、BOOTMGR等。一些嵌入式系統直接運行存儲在ROM中的可執行程序。
BIOS開機完成後,啟動程式就接手初始化硬體設備、建立記憶體空間的映射,以便為作業系統內核準備好正確的軟硬體環境。
對於UEFI系統,由EFI應用程式(即EFI系統分區中的.efi檔案)取代MBR和第二階段啟動程式,UEFI韌體會載入啟動程式的.efi檔案,再由啟動程式載入作業系統。
歷史
早期可編程商業計算機,如UNIVAC I和IBM 701,會包含執行完整的輸入輸出操作的指令。相同的硬件邏輯可以被用來加載穿孔卡片的內容,或者其他輸入媒體,如磁鼓或者磁帶,這些引導程序可以通過按鍵啟動。IBM701 計算機擁有一個 "Load" 按鈕,此按鈕可以將打孔卡片的前 36個bit字讀入到主存中。左18-bit 半字被視為指令而執行,通常用來將額外的字讀入到內存中。隨後被加載的引導程序被執行,反過來無需更多地人為操作從媒介中加載更大的程序到內存中。隨後計算機跳轉到內存位置001,讀取存儲的第一個指令。第一條指令一般是相同的:將前80個內存位置的信息移到一個匯集區域(打孔卡片2,3,4...)。一旦信息被移動到這些區域後,機器跳轉到080位置(讀取一個卡片),然後下一個卡片將被讀取,並處理相關信息。
同期的其他IBM計算機有着相似的特性。IBM1401系統使用讀卡器從打孔卡片中加載一個程序。打孔卡片中存儲的80個字符被讀入到內存地址001~080.
Remove ads
個人電腦

現代計算機的UEFI和BIOS都支持從多種設備中啟動,如:硬盤(MBR或者GPT)、光驅、USB大容量存儲設備(U盤、SD卡等),或者從網卡啟動(使用PXE)。
通常,固件(UEFI或BIOS)都會允許用戶設置啟動順序(英語:boot order)。如果將啟動順序設為「第一:DVD 驅動器;第二:硬盤驅動器」,固件會先嘗試從 DVD 驅動器啟動,如果失敗(比如驅動器中沒有 DVD)則會再嘗試從本地的硬盤驅動器啟動。
假設有一台PC,硬盤上裝有 Windows 10,用戶可以設置啟動順序為上述順序,然後插入Linux Live CD,這樣就可以直接試用Linux。更常見的情況是直接使用鍵盤從BIOS或UEFI的引導菜單(英語:boot menu)或者BIOS設定(英語:BIOS Setup)中選擇,BIOS設定通常可以通過在POST時按Delete或F2進入。
智能手機
現代的智能手機具備操作系統,系統在啟動之前需要通過bootloader啟動,手機啟動的時候基帶執行初始化,然後引導系統內核,直到系統啟動。智能手機生產廠商通常在出廠時鎖定了手機的bootloader,以防止用戶誤操作損壞了系統文件造成手機功能異常,部分廠商會給開發者或普通用戶發放bootloader解鎖碼,這通常需要步驟眾多的申請,鎖定bootloader能部分有效阻止惡意程序對手機造成的破壞,部分用戶或開發者會通過解鎖Bootloader以獲得更多的功能和權限,這通常會帶來使用風險。
參見
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads