EFI 是 Extensible Firmware Interface(可扩展固件接口)的缩写,是由英特尔倡导推出的一种在类PC系统中替代BIOS的升级方案。与传统BIOS相比,EFI通过模块化、C语言的参数堆栈传递方式和动态链接的形式构建系统,较BIOS而言更易于实现,容错和纠错特性更强。
UEFI则是Unified Extensible Firmware Interface(统一可扩展固件接口),它是基于EFI 1.10标准为基础发展起来的,不过所有者并不是英特尔,而是一个名为Unified EFI Form的国际组织。UEFI是一种详细描述类型接口的标准,可以让PC从预启动的操作环境,加载到操作系统上。UEFI采用的是图形化界面,与传统BIOS有很大区别
需要注意的是,虽然EFI与UEFI的叫法不同,但是两者在本质上是基本相同的。自2000年12月12日正式发布EFI 1.02标准后,EFI一直是作为代替传统的BIOS的先进标准而存在,拥有权在英特尔手中,而在2007年开始,英特尔将EFI标准的改进与完善工作交给Unified EFI Form进行全权负责,随后登场的EFI标准则正式更名为UEFI,以示区别。
因此UEFI是EFI的改良与发展,实际上前者相比后者在UGA协议、SCSI传输、USB控制还有I/O设备方面都作出了改进,还添加了网络应用程序接口、X64绑定、服务绑定等新内容。此外参与UEFI标准开发的并不仅仅有英特尔一家,而是包含了AMD、苹果、戴尔、惠普、IBM、联想、微软等多个龙头企业,因此UEFI在兼容性上有更好的表现,通用性更强。
UEFI相比传统BIOS的区别和优点在哪里?
与传统BIOS相比,UEFI对于新硬件的支持远超对方,其中最能体现这一点的就是我们可以在UEFI下使用2.2TB以上硬盘作为启动盘,而传统BIOS下这种大容量硬盘如不借助第三方软件则只能当作数据盘使用。采用图形化界面的UEFI可以更直观地查看各种数据
另外UEFI内置图形驱动功能,可以提供一个高分辨率的图形化界面,用户进入后完全可以像在Windows系统下那样使用鼠标进行设置和调整,操作上更为简单快捷。同时由于UEFI使用的是模块化设计,在逻辑上可分为硬件控制与软件管理两部分,前者属于标准化的通用设置,而后者则是可编程的开放接口,因此主板厂商可以借助后者的开放接口在自家产品上实现各种丰富的功能,包括截图、数据备份 、硬件故障诊断、脱离操作系统进行UEFI在线升级等,功能上也要比传统BIOS更多、更强。
当然UEFI相比传统BIOS的优点并不仅仅是以上数点,实际上它还包括有如下特点:
- 编码99%都是由C语言完成;
- 不再使用中断、硬件端口操作的方法,而采用了Driver/Protocol的方式;- 将不支持X86实模式,而直接采用Flat mode;
- 不再输出单纯的二进制代码,改为Removable Binary Drivers模式;
- 操作系统的启动不再是调用INT 19H中断,而是直接利用Protocol/Device Path实现;- 更方便第三方开发;
不过这些特点对于普通用户来说并没有什么实际意义,它们更多地是面向开发者,因此相关的内容这次就不展开叙述了。
UEFI主要由那几部分组成?
UEFI各组件之间的关系那么现在我们稍微深入一点,看看UEFI主要构成部分。UEFI主要由初始化模块、驱动执行环境、驱动程序、兼容性支持模块、UEFI应用和GUID磁盘分区组成,其中初始化模块和驱动执行环境是UEFI的运行基础,通常被整合在主板的闪存芯片中,这点与传统BIOS是比较类似的。开机的时候初始化模块首先得到执行,负责CPU、主板芯片及存储设备的初始化工作,完成后则载入驱动执行环境,即Driver Execution Environment,简称DXE。
DXE完成载入后UEFI就可以进一步加载硬件的UEFI驱动程序,DXE通过枚举的方式加载各种总线及设备的驱动,而这些驱动程序则可以放置在系统的任意位置,只要确保其可以按顺序被正确枚举即可。硬件的UEFI驱动一般是放置在硬盘的UEFI专用分区中,只需要系统正确加载这个硬盘,对应的驱动就可以正常读取并应用。
因此在DXE的支持下,即使玩家给PC添加新的硬件,只要有对应的UEFI驱动,那么UEFI也可以轻松提供支持, 这一点是几乎宽展能力的传统BIOS所无法媲美的,也正是因为这个能力,UEFI可以轻松支持各种网络设备并联网,藉此实现无需进入系统即可进行在线升级UEFI的功能。
兼容性支持模块则是为了让不具备UEFI引导功能的操作系统也能在UEFI环境下顺利完成引导开机,这个兼容性支持模块将为UEFI提供类似于传统BIOS的系统服务,以此保证UEFI在技术上能有良好的过渡。而GUID磁盘分区则是在UEFI标准中引入的磁盘分区结构,与传统MBR分区相比,GUID磁盘分区突破了前者只允许4个主分区的限制,分区类型也改为了我们常说的GPT分区。
UEFI有什么缺点吗?
虽然现在UEFI已经基本取代传统BIOS,但是它并不是只有优点而没有缺点的。UEFI相比传统BIOS在硬件兼容性上有很大的提升,但是就自身的安全性来说,它相比传统BIOS可能还有所不如。首先UEFI的主程序和代码都整合在主板上的闪存芯片中 ,如果该芯片出现了故障,那么电脑就无法正常启动,这点与传统BIOS是基本相同的。
然而由于UEFI程序使用高级语言编写的,与使用汇编语言编写传统BIOS相比要更容易受到病毒的攻击,程序代码也更容易被改写,因此目前UEFI虽然已经被广泛使用,但是在安全性和稳定性上仍然有待提升。