From:wiki
引導(dǎo)程序
- 引導(dǎo)程序(boot loader)
位于電腦或其他計(jì)算機(jī)應(yīng)用上帜平,是指引導(dǎo)操作系統(tǒng)的程序济赎。引導(dǎo)程序引導(dǎo)方式及程序視應(yīng)用機(jī)型種類而不同扭勉。例如在普通的個人電腦上痘括,引導(dǎo)程序通常分為兩部分:
- 第一階段引導(dǎo)程序位于主引導(dǎo)記錄(MBR)姓蜂,用以引導(dǎo)位于某個分區(qū)上的第二階段引導(dǎo)程序豆瘫。
- 第二階段引導(dǎo)程序珊蟀,如NTLDR、BOOTMGR和GNU GRUB等外驱。
BIOS開機(jī)完成后育灸,bootloader就接手初始化硬件設(shè)備、創(chuàng)建內(nèi)存空間的映射昵宇,以便為操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的軟硬件環(huán)境磅崭。
第一:將P寄存器的值設(shè)為8
第二:檢查紙帶(paper tape)讀取器瓦哎,是否已經(jīng)可以進(jìn)行讀取
第三:如果還不能進(jìn)行讀取砸喻,跳至1
第四:從紙帶讀取器,讀取1 byte至累加器
第五:如為帶子結(jié)尾蒋譬,跳至8
第六:將寄存器的值割岛,存儲至P寄存器中的數(shù)值所指定的地址
第七:增加P寄存器的值
第八:跳至1
發(fā)展
但是隨著計(jì)算機(jī)操作系統(tǒng)越來越復(fù)雜,位于主引導(dǎo)記錄(MBR)的空間已經(jīng)放不下引導(dǎo)操作系統(tǒng)的代碼犯助,于是就有了第二階段的引導(dǎo)程序癣漆,而MBR中代碼的功能也從直接引導(dǎo)操作系統(tǒng)變?yōu)榱艘龑?dǎo)第二階段的引導(dǎo)程序。
對于UEFI系統(tǒng)剂买,已由EFI應(yīng)用程序(即EFI分區(qū)中的.efi文件)取代MBR和PBR惠爽,UEFI會加載引導(dǎo)程序的.efi文件,再由引導(dǎo)程序加載操作系統(tǒng)瞬哼。MBR和PBR程序通常是用匯編語言編寫的婚肆,會調(diào)用BIOS中斷調(diào)用;而.efi文件則是PE格式的文件坐慰,可用C語言編寫较性。
在計(jì)算機(jī)中, 引導(dǎo)或者引導(dǎo)程序是計(jì)算控制系統(tǒng)的一個初始化過程。引導(dǎo)過程可以使“硬引導(dǎo)”赞咙,如:開機(jī)通電后硬件診斷永毅;也可以使“軟引導(dǎo)”,此時會跳過開機(jī)自啟人弓。一些系統(tǒng)中軟啟動過程中,RAM可以不清零着逐。軟啟動和硬啟動都可以通過硬件發(fā)起崔赌,如按下電源開關(guān);也可以通過軟件命令來進(jìn)行耸别。當(dāng)正常健芭、有效的運(yùn)行環(huán)境達(dá)到后,啟動完成秀姐。
- 運(yùn)行原理
引導(dǎo)裝載程序是計(jì)算機(jī)開機(jī)自檢完成后裝載操作系統(tǒng)或者其他系統(tǒng)軟件的計(jì)算機(jī)程序慈迈。自檢完成后運(yùn)行引導(dǎo)裝載程序,然后在加載并運(yùn)行軟件省有。
- 載體
引導(dǎo)裝載程序可以從永存體(硬盤)裝載到主內(nèi)存中痒留。一些老計(jì)算機(jī)中,引導(dǎo)裝載程序可以從打孔卡蠢沿、穿孔紙帶伸头、或者磁帶中加載到主內(nèi)存中。啟動裝載程序加載且執(zhí)行完成啟動的程序舷蟀。和POST程序相似恤磷,啟動裝置代碼可以存儲在永久存儲體位置中,也可以為硬連線的形式野宜。
當(dāng)代通用計(jì)算機(jī)中扫步,啟動過程通常包含開機(jī)自檢、定位以及初始化外圍設(shè)備匈子、然后找到河胎、加載、并開始一個操作系統(tǒng)旬牲。睡眠和休眠過程不包含啟動仿粹。一些嵌入式系統(tǒng)不要求可察的啟動序列,可以直接運(yùn)行存儲在ROM中的可運(yùn)行程序原茅。所有計(jì)算機(jī)系統(tǒng)都是狀態(tài)機(jī)吭历,只有重啟才可能返回到初始狀態(tài)。
引導(dǎo)在英文中為"boot"擂橘,是bootstrap的縮寫晌区,源自于短語"pull oneself up by one's bootstraps",即"靠自己振作起來"。如果大部分軟件需要通過其他已運(yùn)行的程序加載到計(jì)算機(jī)中朗若,則必須存在一個將初始軟件加載到計(jì)算機(jī)中的機(jī)制恼五。 各種類型的只讀內(nèi)存可以解決此類的矛盾體——允許計(jì)算機(jī)帶有可被擦除的啟動程序。隨著ROM容量的變大哭懈,更加精細(xì)的啟動程序得以實(shí)現(xiàn)灾馒。
- 用途:啟動設(shè)備
啟動設(shè)備是指操作系統(tǒng)可被從其上加載的設(shè)備。現(xiàn)代計(jì)算機(jī)的 BIOS 支持從多種設(shè)備中啟動遣总,如:
通常旭斥,BIOS 允許用戶設(shè)置啟動順序容达,并依次嘗試從用戶所指定的設(shè)備啟動。