BIOS与UEFI启动过程

► 启动模式背景

接下来,我们将深入探讨BIOS、EFI和UEFI在现代计算机启动中的角色和区别。首先,要明确的是,BIOS是一种存储在BIOS芯片中的程序,而现代新式电脑普遍采用UEFI启动,早期过渡电脑则多采用EFI启动。值得注意的是,EFI或UEFI的一部分同样被存储在芯片中。尽管在表面形式和基本功能上,EFI/UEFI与BIOS有所相似,但它们本质上是不同的。因此,在讨论时,我们更倾向于将存储EFI/UEFI的芯片称为EFI/UEFI BIOS芯片,而将EFI/UEFI直接称为EFI/UEFI BIOS。但为了更准确地区分,我们还是建议去除“BIOS”的后缀,以更清晰地阐述BIOS、EFI和UEFI之间的差异。接下来,我们将详细探讨这三种启动方式的异同。

► BIOS功能与运行

前文已提及,BIOS在计算机中扮演着至关重要的角色,涵盖了自检、CMOS设置、引导操作系统启动以及提供硬件I/O和中断等多项核心功能。为了更好地理解这些功能,BIOS程序被精心划分为多个模块包括Boot Block引导模块、CMOS设置模块、扩展配置数据(ESCD)模块,以及DMI硬件数据收集模块。其中,引导模块肩负着执行BIOS程序入口、检测和初始化基本硬件的重任。ESCD模块则负责在BIOS与操作系统之间交换硬件配置数据。DMI作为硬件管理工具与系统层之间的桥梁,使得用户能够直观地获取硬件的详尽信息。而CMOS设置模块则是对这些硬件信息进行设置并保存的关键所在,它是BIOS程序中除了启动初始化之外另一大常用功能。

值得注意的是,BIOS程序本身是用汇编语言编写的,在16位实模式下通过调用INT 13H中断来执行。尽管现代CPU已普遍采用64位架构,但在BIOS启动过程中,由于兼容性问题,系统仍需在16位实模式下运行。在这种模式下,系统可直接访问的内存仅限于最初的1MB。

► BIOS启动流程

了解完这些背景知识后,我们接下来将深入探讨BIOS启动计算机的具体流程。当用户按下电源开关时,电源开始向主板及其他设备供电。在电压稳定之前,主板北桥会向CPU发送复位信号以进行初始化。一旦电压稳定,复位信号即被撤除,CPU则在系统BIOS保留的内存地址处开始执行POST自检等后续操作。

在计算机启动过程中,BIOS会进行POST自检,主要针对系统的核心硬件进行检测,包括CPU、640K基本内存、显卡等关键组件。此外,还会检查PS/2键盘控制器、系统时钟等设备是否存在错误。由于POST自检在显卡初始化之前进行,若在此阶段发现错误,屏幕上可能无法显示,但主板上的报警扬声器会发出声音。根据报警声的不同,可以初步判断故障所在。例如,一声短“嘀”声通常表示正常启动,而不同的短“嘀”声和长“嘀”声组合则代表不同的错误类型。

POST自检完成后,BIOS将开始调用中断服务例程,进行各种硬件的初始化工作。这一阶段包括检测并初始化显卡,使得电脑能够显示出开机启动画面。然而,由于BIOS在16位实模式下运行,该画面仅能以VGA分辨率(640480,纵横比4:3)显示。此外,BIOS只能识别由主引导记录(MBR)初始化的硬盘。

完成硬件初始化后,BIOS将进入ESCD更新阶段。BIOS会检测并更新存储在CMOS中和操作系统交换的硬件配置数据。如果系统硬件发生变动,ESCD数据将被更新;否则,将保持原状不变。ESCD检测或更新完成后,BIOS将启动操作系统,完成启动过程。

► UEFI的特性与功能

为了兼容这些旧技术,英特尔在一代又一代的处理器中保留了16位实模式。但在2001年,英特尔推出了全新的安腾处理器和IA-64架构,并伴随着EFI技术的问世。遗憾的是,安腾处理器和IA-64架构并未得到广泛推广,而EFI及其后续的UEFI技术却逐渐成为电脑的主要预启动环境

EFI,全称Extensible Firmware Interface,意为可扩展固件接口,是一个模块化、以高级语言(主要使用C语言)构建的小型化系统。与BIOS相似,EFI在启动过程中负责硬件初始化。然而,它通过直接加载EFI驱动来识别和初始化系统硬件,从而彻底摒弃了传统的中断执行方式。

随着EFI的诞生,一种全新的GUID磁盘分区系统(GPT)也被引入。与传统MBR磁盘相比,GPT支持任意多的分区,且每个分区的大小原则上是无限制的。

总结EFI的优势,包括采用32位或64位技术,摒弃了16位实模式,以及通过直接加载驱动程序来实现硬件的高效管理。此外,安全启动功能通过主板上的TPM芯片对硬件进行签名验证,只有经过认证的硬件驱动才能在UEFI环境下加载。

► EFI到UEFI的发展

当EFI发展至1.1版本时,英特尔决定将其公开化,此举吸引了众多公司加入,推动了2.0版本的发展。此后,EFI不再局限于英特尔,而是成为了一个国际组织Unified EFI Form的标准。因此,EFI在2.0之后也被更名为UEFI。UEFI中的“U”代表“Unified”(统一),意味着“统一的可扩展固件接口”。相较于前身的EFI,UEFI在功能上有诸多改进。

总结而言,UEFI在现代系统中的适应能力极强,通过CSM兼容性支持模块支持旧设备,如在UEFI下挂载传统MBR硬盘。其预加载环境和驱动执行环境是存储在UEFI(UEFI BIOS)芯片中,使得启动过程流畅且高效,不断提高用户系统的兼容性和安全性。

综上所述,虽然BIOS和UEFI在启动计算机的过程上有所不同,但UEFI作为一种更新、更高效的启动模式,逐步成为现代计算机的主流选择。其具备的64位兼容性、驱动加载机制和安全启动等功能,极大地提升了硬件初始化和操作系统引导的效率,为更广泛的技术发展提供了坚实的基础。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐