引导程序

✍ dations ◷ 2025-08-23 06:37:00 #BIOS,引导程序

引导(或称引导程序)在计算机中是计算控制系统的一个初始化过程。引导过程可以是“硬引导”,如:开机通电后硬件诊断;也可以是“软引导”,此时会跳过开机自启。一些系统中软启动过程中,RAM可以不清零。软启动和硬启动都可以通过硬件发起,如按下电源开关;也可以通过软件命令来进行。当正常、有效的运行环境达到后,启动完成。引导装载程序是计算机开机自检完成后装载操作系统或者其他系统软件的计算机程序。自检完成后运行引导装载程序,然后再加载并运行软件。引导装载程序可以从硬盘装载到主内存中。一些老计算机中,引导装载程序可以从打孔卡、穿孔纸带、或者磁带中加载到主内存中。启动装载程序加载且执行完成启动的程序。和POST程序相似,启动设备代码可以存储在永久存储体位置中,也可以为硬连线的形式。

当代通用计算机中,启动过程通常包含开机自检(POST)、初始化周边设备、然后加载操作系统。一些嵌入式系统直接运行存储在ROM中的可执行程序。

引导在英文中为“boot”,是bootstrap的缩写,源自于短语“Pull oneself up by one's bootstraps”,即“靠自己振作起来”。如果大部分软件需要通过其他已运行的程序加载到计算机中,则必须存在一个将初始软件加载到计算机中的机制。

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

引导程序(英语:boot loader)是指引导操作系统的程序。在普通的个人电脑上,引导程序通常分为两部分:第一阶段引导程序位于主引导记录(MBR),用以引导位于某个分区上的第二阶段引导程序,如NTLDR、BOOTMGR和GNU GRUB等。

BIOS引导完成后,bootloader就接手初始化硬件设备、创建存储器空间的映射,以便为操作系统内核准备好正确的软硬件环境。

但是随着计算机操作系统越来越复杂,位于主引导记录的空间已经放不下引导操作系统的代码,于是就有了第二阶段的引导程序,而MBR中代码的功能也从直接引导操作系统变为了引导第二阶段的引导程序。

对于UEFI系统,由EFI应用程序(即EFI系统分区中的.efi文件)取代MBR和第二阶段引导程序,UEFI固件会加载引导程序的.efi文件,再由引导程序加载操作系统。

现代计算机的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时按DeleteF2进入。

现代的智能手机具备操作系统,系统在启动之前需要通过bootloader启动,手机启动的时候基带执行初始化,然后引导系统内核,直到系统启动。智能手机生产厂商通常在出厂时锁定了手机的bootloader,以防止用户误操作损坏了系统文件造成手机功能异常,部分厂商会给开发者或普通用户发放bootloader解锁码,这通常需要步骤众多的申请,锁定bootloader能部分有效阻止恶意程序对手机造成的破坏,部分用户或开发者会通过解锁bootloader以获得更多的功能和权限,这通常会带来使用风险。

相关

  • 真值在逻辑中,真值(truth value),又称逻辑值(logical value),是指示一个陈述在什么程度上是真的。在计算机编程上多称做布林值、布尔值。在经典逻辑中,唯一可能的真值是真和假。但在其他
  • 宁西铁路宁西铁路是连接南京与西安两座城市的铁路系统,东起江苏省南京市,经安徽省合肥市、六安市,河南省信阳市、南阳市,湖北省随州市,穿越秦岭进入陕西省,经商洛市、渭南市,至西安市西安站
  • Brian the SunBrian the Sun(ブライアンザサン)是日本的4人摇滚乐团。以森良太和白山治辉为中心在大阪结队。乐团名是由白山治辉提出。8月:在“闪光RIOT”出演,大约5000组参加者中取得亚军。11月
  • 何敏枫何敏枫(1951年1月7日-)是一名美国籍华裔的童话作家。何敏枫出生于缅甸仰光,父亲是经济学家及外交官,母亲是一名化学家。她从很小的时候就已经去到泰国生活及读书,直至大学时代去了
  • 塞尔玛·布莱尔塞尔玛·布莱尔(Selma Blair,1972年6月23日-),美国演员。成名作为电影《致命性游戏(英语:Cruel Intentions)》()。她在90年代演出许多配角,并于电影《致命性游戏》与1999年的短篇剧集《
  • 詹姆斯·范霍夫腾詹姆斯·道格·阿德里纳斯·“奥克斯”·范霍夫腾(英语:James Dougal Adrianus "Ox" van Hoften,1944年6月11日-)曾是一位美国国家航空航天局的宇航员,执行过行STS-41-C以及STS-51
  • 艾尔默·伯克·兰伯特艾尔默·伯克·兰伯特(Aylmer Bourke Lambert,1761年2月2日-1842年1月10日),英国植物学家。他是伦敦林奈学会的创始会员之一。他在双名法中的“作者引用”中有“Lamb.”的缩写,用
  • 顾斗光顾斗光(1724年-1786年),字曜七,号谔斋。清无锡人。顾奎光之弟。身高不足四尺。乾隆四十五年(1780年)贡生。杨鸿观之妻顾氏是顾斗光之妹。斗光满腹经纶,但科场不顺,只能在家教导顾敏恒
  • 刘尧诲刘尧诲(1522年-1585年),字君纳,号凝斋,湖广临武县人。明朝政治人物。嘉靖进士。以新喻县知县历官给事中,累升福建巡抚、两广总督等职。官至南京兵部尚书。嘉靖三十二年(1553年)进士。
  • 赵岩 (记者)赵岩(1962年3月14日-),中国公民,哈尔滨人,在任《纽约时报》北京分社新闻助理期间被捕,成为国际新闻人物。 本文全部或部分内容来自美国联邦政府所属的美国之音网站。根据版权条款(英