From:wiki
引導程序
- 引導程序(boot loader)
位于電腦或其他計算機應用上,是指引導操作系統的程序。引導程序引導方式及程序視應用機型種類而不同。例如在普通的個人電腦上,引導程序通常分為兩部分:
BIOS開機完成后,bootloader就接手初始化硬件設備、創建內存空間的映射,以便為操作系統內核準備好正確的軟硬件環境。
第一:將P寄存器的值設為8
第二:檢查紙帶(paper tape)讀取器,是否已經可以進行讀取
第三:如果還不能進行讀取,跳至1
第四:從紙帶讀取器,讀取1 byte至累加器
第五:如為帶子結尾,跳至8
第六:將寄存器的值,存儲至P寄存器中的數值所指定的地址
第七:增加P寄存器的值
第八:跳至1
發展
但是隨著計算機操作系統越來越復雜,位于主引導記錄(MBR)的空間已經放不下引導操作系統的代碼,于是就有了第二階段的引導程序,而MBR中代碼的功能也從直接引導操作系統變為了引導第二階段的引導程序。
對于UEFI系統,已由EFI應用程序(即EFI分區中的.efi文件)取代MBR和PBR,UEFI會加載引導程序的.efi文件,再由引導程序加載操作系統。MBR和PBR程序通常是用匯編語言編寫的,會調用BIOS中斷調用;而.efi文件則是PE格式的文件,可用C語言編寫。
在計算機中, 引導或者引導程序是計算控制系統的一個初始化過程。引導過程可以使“硬引導”,如:開機通電后硬件診斷;也可以使“軟引導”,此時會跳過開機自啟。一些系統中軟啟動過程中,RAM可以不清零。軟啟動和硬啟動都可以通過硬件發起,如按下電源開關;也可以通過軟件命令來進行。當正常、有效的運行環境達到后,啟動完成。
- 運行原理
引導裝載程序是計算機開機自檢完成后裝載操作系統或者其他系統軟件的計算機程序。自檢完成后運行引導裝載程序,然后在加載并運行軟件。
- 載體
引導裝載程序可以從永存體(硬盤)裝載到主內存中。一些老計算機中,引導裝載程序可以從打孔卡、穿孔紙帶、或者磁帶中加載到主內存中。啟動裝載程序加載且執行完成啟動的程序。和POST程序相似,啟動裝置代碼可以存儲在永久存儲體位置中,也可以為硬連線的形式。
當代通用計算機中,啟動過程通常包含開機自檢、定位以及初始化外圍設備、然后找到、加載、并開始一個操作系統。睡眠和休眠過程不包含啟動。一些嵌入式系統不要求可察的啟動序列,可以直接運行存儲在ROM中的可運行程序。所有計算機系統都是狀態機,只有重啟才可能返回到初始狀態。
引導在英文中為"boot",是bootstrap的縮寫,源自于短語"pull oneself up by one's bootstraps",即"靠自己振作起來"。如果大部分軟件需要通過其他已運行的程序加載到計算機中,則必須存在一個將初始軟件加載到計算機中的機制。 各種類型的只讀內存可以解決此類的矛盾體——允許計算機帶有可被擦除的啟動程序。隨著ROM容量的變大,更加精細的啟動程序得以實現。
- 用途:啟動設備
啟動設備是指操作系統可被從其上加載的設備。現代計算機的 BIOS 支持從多種設備中啟動,如:
通常,BIOS 允許用戶設置啟動順序,并依次嘗試從用戶所指定的設備啟動。