UEFI

发布时间:2024-07-27 20:02:57 作者:汉语成语

UEFI全称“统一的可扩展固定接口”(UnifiedExtensibleFirmwareInterface)。所谓UEFI,实际上就是Intel当年提出的EFI。相比古老陈旧的BIOS系统,UEFI拥有诸多优势,这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上,从而使开机程序化繁为简,节省时间。

发展史

EFI的出现次被正式提出,是在2000年的Intel春季IDF上,经过几次修订,现在已经到了EFI1.10版,而2.0版正由UEFI这个组织制定中(故EFI也现称为UEFI)。EFI早在2000年时由Inetl提出的标准,从某个角度来讲,Intel在当时推出EFI主要为将来电脑固件能兼容于各种不同架构平台布局;例如EFI可运用在Itanium、Pentium甚至XScale平台上。最初,共同发展EFI的业者包括Intel、AMI和台湾业者Insyde,后来由于EFI确实具有足够的前瞻性,产业间成立了UEFI(UnifiedEFI)论坛,共同开发适用于各平台的PC固件标准。基本上,UEFI是基于原有的EFI1.10为基础,正在进行UEFI2.0的制定工作。

定义

uEFI概念划为两部分:uEFI的实体(uEFIImage)跟平台初始化框架。

uEFI的实体-uEFIImage

根据uEFI规范定义,uEFIImage包含三种:uEFIApplications,OSLoadersanduEFIDrivers。

uEFIApplications是硬件初始化完,操作系统启动之前的核心应用,比如:启动管理、BIOS设置、uEFIShell、诊断程式、调度和供应程式、调试应用...等等

OSLoaders是特殊的uEFIApplication,主要功能是启动操作系统并退出和关闭uEFI应用。

uEFIDrivers是提供设备间接口协议,每个设备独立运行提供设备版本号和相应的参数以及设备间关联,不再需要基于操作系统的支持。

性能

UEFI的特点,采用模块化设计的UEFIBIOS,基本上区分成硬件控制和OS软件两大模块,前者只要是相同版本的UEFIBIOS,就会有相同的功能,后者则是给厂商用C语言撰写应用功能的开放接口。通过这个开放接口,厂商就可以自行编写出各种功能的插件(Plug-in),像是类似Ghost的系统备份/还原插件、类似IE的浏览器插件、类似Anti-Virus的防病毒插件等功能来增加自家产品的功能特色。从前面的内容来看,UEFIBIOS完全不同于传统BIOS的样貌,几乎就是一个专用的微型操作系统。而随着UEFIBIOS内建功能的多样化,它的数据体积自然是不容小视,再加上扩展性的需要,UEFIBIOS将不再是存放在主板上的只读存储器中,而是在硬盘划分出一块FAT32格式的扇区(ESP;UEFIBIOSSystemPartition),来存放UEFIBIOS的相关数据。

可以说,UEFI系统的固件就相当于一个简单的操作系统,在开机程序完成后,使用者可选择执行UEFIShell当做命令接口,或指定任一其它操作系统。这种情形就有点像早期的DOS一样,Windows只是另一个使用者接口系统。包括AMI和Insyde,现在的UEFIBIOS都是以Intel所撰写的UEFI功能核心Framework(开发代号为Tiano)为基础,再加挂其编写的架构模块。甚至于微软的下一代操作系统Longhorn,也在IDF中宣布支持UEFI,按照微软的计划,未来所有新的操作系统都将支持UEFI。在模块化分工的概念下,加入一个新的中介接口的确能将系统变动带来的其它改变减至最少。

因为UEFI的这种架构特性,所以很多人认为在UEFI成为电脑固件后,对BIOS厂商和微软都是威胁----BIOS业者将不再有的主控地位,而用户在开机后执行系统的选择性增加,就不见得一定得依赖微软的Windows了。不过,UEFIBIOS也象CSS一样存在不少缺点。比如真正的UEFI是在硬盘中隔离出一个区域来作为存储空间的,如果硬盘这一小块空间出现物理损坏,后果怎样?由于UEFI更像是种软件,所以对病毒、外部程序侵入的防御能力就比传统的BIOS削弱了不少。再说,现在会用C语言来编程的人不少,可能很多人都可以很容易破译UEFI,这对UEFI的安全性提出了更高的要求。

联盟介绍

uEFI联盟将负责开发、管理和推广uEFI规范,目前在这个联盟里面分成四个组:

规范工作组:负责uEFI的规范制定和改进

平台初始化工作组:负责平台初始化框架规范的制定和改进

测试工作组:负责开发uEFI测试套件

行业联络工作组:负责业界业务联络