电脑系统BIOS、EFI与UEFI的详解(基础帖)

当我们使用U盘在电脑上安装系统时,我们需要进入BIOS进行相关设置。事实上,计算机的BIOS有3个版本,分别是BIOS、EFI和UEFI。不同版本的界面和功能布局也会有所不同。很多用户还不太明白这三个版本之间的区别,所以在这篇文章中,安装大师小编就来详细讲解一下这三个“BIOS”的定义和区别。一定要认真学习。

BIOS是存储在BIOS芯片中的程序。现在的新电脑基本都采用UEFI启动,早期的过渡电脑采用EFI启动。事实上,EFI或UEFI的一部分也存储在芯片中。由于它们表面形态和基本功能与BIOS相似,因此我们也习惯将存储EFI/UEFI的芯片称为EFI/UEFI BIOS芯片。 EFI/UEFI也称为EFI/UEFI BIOS,但实际上它们与BIOS有本质的区别,所以最好去掉最后的“BIOS”尾巴。下面详细讲一下BIOS、EFI和UEFI。

为你分享电脑系统BIOS、EFI与UEFI的详解(基础帖)

BIOS主要用于四个功能:计算机硬件自检、CMOS设置、引导操作系统启动、提供硬件I/O、硬件中断等。因此,BIOS程序可以分为几个模块,主要包括Boot Block引导模块、CMOS设置模块、扩展配置数据(ESCD)模块和DMI采集硬件数据模块。引导模块直接负责执行BIOS程序本身的进入以及计算机基础硬件的检测和初始化。 ESCD用于BIOS和OS之间交换硬件配置数据,DMI充当硬件管理功能。工具层和系统层之间的接口作用。通过DMI,用户可以直观地获取有关硬件的任何信息。 CMOS设置模块的作用是设置硬件信息并保存在CMOS中。它是除启动初始化外最常用的BIOS程序。功能。

BIOS本身是汇编语言代码,通过调用16位实模式下的INT 13H中断来执行。由于x86-64是高度兼容的指令集,并且为了适应BIOS的16位实模式运行环境,所以即使现在CPU都是64位的。如果仍然在BIOS中启动(基本在2009年之前的主板上看到),它们在启动时仍然会以16位实模式执行。 16位实模式可直接访问的内存只有1MB。即使您安装4G、8G、16G或32G内存,BIOS中也只会识别前1MB。在这1MB内存中,前640K称为基本内存,剩余的384K内存保留给启动所需的硬件和各种BIOS本身。知道了这一点,我们就来说说通过BIOS启动计算机的具体过程。

当按下电源开关时,电源开始向主板和其他设备供电。此时电压仍不稳定。在早期的南北桥主板上,主板的北桥向CPU发送复位信号,对CPU进行初始化;复位信号在电压稳定后复位。然后移除。对于目前的单南桥主板来说,CPU本身调节稳定电压来达到初始化的目的。当电压稳定后,CPU在系统BIOS保留的内存地址处执行跳转到BIOS命令的开头,并开始进行POST自检。

POST自检时BIOS只检查系统必要的核心硬件是否有问题,主要是CPU、640K基本内存、显卡是否正常,PS/2键盘控制器是否有错误,由于POST检查是在显卡初始化之前进行的,如果此阶段出现错误,则无法显示在屏幕上。不过,主板上有一个报警扬声器,如果主板的8255外围可编程接口芯片没有损坏,POST报警声是肯定会出来的。根据不同的报警声可以大致判断出错误的位置。正常情况下,短的“嘟”声基本代表正常启动,不同的错误是短的“嘟”声和长的“嘟”声的不同组合。 POST自检完成后,BIOS开始调用中断来完成各种硬件初始化任务。

在硬件初始化工作中,有两个要点。首先,经过POST检测后,电脑最终显示启动画面,这意味着显卡已经被检测到并初始化。但请注意,由于BIOS运行在16位实模式下,因此图片以VGA分辨率(640*480,长宽比4:3)显示,因为最高支持的实模式是VGA。以前14-17英寸的小型CRT显示器的比例为4:3,最大分辨率也比较低,所以这样的启动画面并没有感觉不协调,但现在液晶显示器基本上都是宽屏16:9。分辨率也更高,所以在这样的显示器上,开机画面上的一切都可以说是“惨不忍睹”。 ——图形拉长,字体大且模糊,可以清晰地看到显示字体的锯齿状。其次,BIOS 只识别由主引导记录(MBR)初始化的硬盘。其原因是后续的EFI或UEFI采用了新的GUID磁盘分区系统(GPT)格式。这种硬盘在BIOS下是无法识别的。所有硬件初始化完成后,下一步就是进入更新ESCD阶段。

在ESCD更新阶段,BIOS将检测存储在CMOS中并与操作系统交换的硬件配置数据。如果系统硬件发生变化,数据也会更新。否则不会更新,保持不变。当ESCD检测或更新完成后,BIOS将完成最后一个工作,即启动操作系统。

最后一步,BIOS根据CMOS中用户指定的硬件启动顺序读取相应设备的启动或引导记录,引导相应设备上的操作系统启动,并进入操作系统。之后,操作系统接管BIOS 的硬件和软件职责。他们之间的沟通。如果发现所有硬件都没有能够启动操作系统的记录,屏幕上就会显示相应的错误信息,并且计算机将维持在16位实模式。

虽然BIOS是计算机加电启动不可或缺的一部分,但自1975年诞生以来的近30年里,16位汇编语言代码、1M内存寻址、调用中断执行的概念和方法已经一一转变。有点不同。什么也没有变。虽然经过各大主板厂商的不懈努力,BIOS也有了ACPI、USB设备支持、PnP即插即用支持等新东西,但这并没有从根本上改变BIOS的本质。为了适应这些老技术,Intel,我们不得不在一代又一代的处理器中保留16位实模式(否则根本无法启动)。不过,Intel在2001年开发了新的安腾处理器,采用IA-64架构,并推出了新的EFI。后来证明安腾处理器和IA-64架构并未普及,但EFI和随后的UEFI被发扬光大,成为当今计算机主要的预启动环境。

EFI是Extensible Firmware Interface的缩写,直译为可扩展固件接口。它是用模块化的高级语言(主要是C语言)构建的小型化系统。与BIOS一样,主要是在启动过程中完成。硬件初始化,而是直接采用加载EFI驱动的方式来识别系统硬件并完成硬件初始化,完全放弃了各种中断的执行。 EFI驱动并不是直接面向CPU的代码,而是由EFI字节码编写的。 EFI字节码是专用于EFI的虚拟机指令。需要在EFI驱动运行环境DXE下解释运行,使EFI能够实现通用匹配,并提供良好的兼容性。另外,EFI是完全32位或64位的。放弃16位实模式,在EFI中可以实现处理器的最大寻址,因此任何信息都可以存储在任何内存地址处。另外,由于EFI驱动开发非常简单,基于EFI的驱动模型原则上可以使EFI访问所有硬件功能,完全可以在EFI上实现文件读写、网络浏览等。我。 BIOS上的CMOS设置程序在EFI上作为EFI程序执行。硬件设置是硬件设置程序,启动管理是另一个程序。保存CMOS是另一个程序,尽管它们的形式是shell在一起的。

EFI在功能上相当于一个轻量级的OS(操作系统),但在制定时,EFI的定位并不是一个专业的OS。首先,它只是硬件和操作系统之间的一个接口;其次,EFI不提供中断访问机制。 EFI必须使用轮询来检查和解释硬件,这比OS下的驱动程序效率低。最后,EFI只有简单的内存管理机制,并且仅以段保护模式对内存进行分段。所有程序都可以访问任何位置,并且不提供真正的保护服务。与EFI 一起,引入了新的GUID 磁盘分区系统(GPT) 来支持。传统的MBR磁盘只能有4个主分区。只有当创建的主分区少于4个时,才可以创建扩展分区,然后添加到其中。创建系统可识别的逻辑分区。还有许多逻辑分区。逻辑分区过多会严重影响系统启动。 MBR硬盘分区仅支持最大容量2T,这对于当今大容量硬盘来说也是一种浪费。 GPT 支持任意数量的分区。每个分区的大小原则上是无限的,但实际上由于操作系统的规定不能无限。不过,相对于MBR的2T限制来说,这是一个非常重要的改进。 GPT的分区类型由GUID表唯一指定,基本不可能重复。 EFI系统分区可以被EFI访问,用于访问一些驱动程序和应用程序,尽管原则上这会让EFI系统分区变得不安全。但一般这里放的是一些“边缘”数据。即使被破坏,一般也不会造成严重后果,并且很容易恢复。

当EFI发展到1.1时,Intel决定将EFI公开,所以随后的2.0吸引了很多公司加入。 EFI不再属于Intel,而是属于国际组织Unified EFI Form。 EFI在2.0之后也被更名为UEFI,UEFI,其中EFI是同一个意思,而U是Unified的缩写,所以UEFI的意思是“统一的可扩展固件接口”。与前身EFI相比,UEFI主要有以下改进:

首先,UEFI拥有完善的显卡驱动功能。虽然以前的EFI原则上增加了显卡驱动,但是为了保证EFI和BIOS之间良好的过渡,大多数EFI仍然是类DOS的界面(仍然是640*480VGA分辨率),只支持PS/2键盘操作(很少数支持鼠标操作),不支持USB键盘和鼠标。当谈到UEFI 时,您拥有完整的图形驱动程序。无论是PS/2还是USB键盘鼠标,始终支持UEFI。而且,当显卡也支持GOP VBIOS时,UEFI显示的设置界面就是显卡的高分辨率按钮。 640*480或者1024*768显示,所以图片虽小但是很清晰,但这会造成屏幕周围出现大面积的黑色,但是你不能两者兼得,除非UEFI默认窗口大小也是最高分辨率。

其次,UEFI有一个独特的功能,安全启动,而EFI没有安全启动,安全启动(Secure Boot),其实通俗的解释叫固件验证。开启UEFI安全启动后,主板会根据TPM芯片(或者CPU内置的TPM)记录的硬件签名来判断各个硬件。只有符合认证的硬件驱动才会被加载,而Win8之后的Windows则会在操作系统中加载。在此过程中,将继续检查硬件驱动程序的签名。只有符合Windows记录的硬件才能被Windows加载。这在一定程度上降低了操作系统启动前启动程序被预加载的风险,但也会造成系统安装的改变。拥有垄断地位。

无论EFI还是UEFI,都必须由预加载环境、驱动执行环境、驱动程序等必要部分组成。为了支持一些老设备(比如在UEFI下挂载传统MBR硬盘,不支持UEFI启动的显卡在UEFI下仍然可以使用)。为了支持操作等),还需要CSM兼容性支持模块。 EFI或UEFI仅支持GPT磁盘引导系统。下面详细说一下用EFI或者UEFI启动电脑的过程。

一般情况下,预加载环境和驱动执行环境都存储在UEFI(UEFI BIOS)芯片中。当电源开关打开时,计算机的主要部件开始供电。与BIOS 不同,UEFI 预加载环境首先启动。执行负责CPU和内存(满容量)的初始化。如果这里出现重要问题,电脑即使有报警喇叭也不会发声,因为UEFI并不会驱动8255发声,而是预加载环境只检查CPU和内存。如果这两个主要硬件出现问题,屏幕无显示就可以立即确定。有些主板会提供LED提示,根据CPU或内存灯可以大致判断故障。

CPU和内存初始化成功后,加载驱动执行环境(DXE)。当加载DXE时,UEFI具有枚举和加载UEFI驱动程序的能力。在此阶段,UEFI 将枚举并搜索每个硬件的UEFI 驱动程序。并依次加载它们,完成硬件初始化工作。这比BIOS的读中断加载速度要快得多。同样,如果显卡的UEFI驱动加载成功,电脑也会显示启动画面。所有硬件驱动加载完毕后,最终流程与BIOS相同。您还必须启动操作系统。

在启动操作系统阶段,同样根据引导记录的启动顺序,进入对应设备的引导记录(仅针对GPT设备,如果启动传统的MBR设备,则需要开启CSM支持)、启动操作系统并进入,这里需要注意的是,当UEFI检测到没有操作系统来启动设备时,会直接进入UEFI设置页面,而不是像BIOS那样黑屏显示相关信息。

综上所述,用BIOS和UEFI启动计算机的过程描述可以概括为:BIOS首先初始化CPU,然后跳转到BIOS启动点进行POST自检。如果在此过程中出现严重错误,计算机将发出不同的警报声音。提醒一下,接下来使用读中断的方式加载各种硬件,完成硬件初始化并进入操作系统启动流程;而UEFI则运行预加载环境,直接先初始化CPU和内存。如果CPU和内存有问题,就会直接黑屏。启动后,PXE通过枚举来搜索各种硬件并加载驱动程序,完成硬件初始化,然后也进入操作系统启动流程。

另外,BIOS是16位汇编语言程序,只能运行在16位实模式下,可访问的内存只有1MB,而UEFI是32位或64位高级语言程序(C语言)程序),突破了实模式限制,可以达到所需的最大寻址。

以上就是小编为大家带来的计算机系统BIOS、EFI和UEFI的详细讲解。这是比较基础的计算机知识。你不需要理解得太深。只需知道一般差异即可。希望能够对大家有所帮助!

相关文章

手游排行榜

  • 最新排行
  • 最热排行
  • 评分最高