本页使用了标题或全文手工转换

啟動程式

维基百科,自由的百科全书
跳转至: 导航搜索

引导程序英语:boot loader)位于電腦或其他計算機應用上,是指引导作業系統的程序。啟動程式啟動方式及程序視應用機型種類而不同。例如在普通的个人电脑上,引导程序通常分为两部分:第一阶段引导程序位于主引导记录(MBR),用以引导位于某个分区上的第二阶段引导程序,如NTLDRBOOTMGRGNU GRUB等。

BIOS開機完成後,bootloader就接手初始化硬體設備、建立記憶體空間的映射,以便為作業系統內核準備好正確的軟硬體環境。

簡單的bootloader的虛擬組譯碼,如其後的八個指令:

第一:將P暫存器的值設為8
第二:檢查紙帶(paper tape)讀取器,是否已經可以進行讀取
第三:如果還不能進行讀取,跳至1
第四:從紙帶讀取器,讀取一byte至累加器
第五:如為帶子結尾,跳至8
第六:將暫存器的值,儲存至P暫存器中的數值所指定的地址
第七:增加P暫存器的值
第八:跳至1

但是随着计算机操作系统越来越复杂,位于主引导记录的空间已经放不下引导操作系统的代码,于是就有了第二阶段的引导程序,而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容量的变大,更加精细的启动程序得以实现。

第一台商业计算机[编辑]

早期可编程商业计算机,如UNIVAC I和IBM 701,会包含执行完整的输入输出操作的指令。相同的硬件逻辑可以被用来加载穿孔卡片的内容,或者其他输入媒体,如磁鼓或者磁带,这些引导程序可以通过按键启动。IBM701 计算机拥有一个 "Load" 按钮,此按钮可以将打孔卡片的前 36个bit字读入到主存中。左18-bit 半字被视为指令而执行,通常用来将额外的字读入到内存中。随后被加载的引导程序被执行,反过来无需更多地人为操作从媒介中加载更大的程序到内存中。随后计算机跳转到内存位置001,读取存储的第一个指令。第一条指令一般是相同的:将前80个内存位置的信息移到一个汇集区域(打孔卡片2,3,4...)。一旦信息被移动到这些区域后,机器跳转到080位置(读取一个卡片),然后下一个卡片将被读取,并处理相关信息。 同期的其他IBM计算机有着相似的特性。IBM1401系统使用读卡器从打孔卡片中加载一个程序。打孔卡片中存储的80个字符被读入到内存地址001~080.

參見[编辑]