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 允许用户设置启动顺序,并依次尝试从用户所指定的设备启动。