uEFI 统一可扩展固件接口开源项目

我要开发同款
匿名用户2010年06月09日
59阅读
所属分类、程序开发、协议和规范
授权协议未知

作品详情

uEFI=universalExtensibleFirmwareInterface(统一可扩展固件接口),是一个可扩展的,标准化的统一固件接口规范,它采用模块化、动态链接和C语言风格的常数堆栈传递方式来构建系统,摆脱了传统BIOS复杂的16位汇编代码。

由于EFI确实具有足够的前瞻性,产业间成立了UEFI(UnifiedEFI)论坛,共同开发适用于各平台的PC固件标准。基本上,UEFI是基于原有的EFI1.10为基础,正在进行UEFI2.0的制定工作。

UEFIBIOS内建功能的多样化,它的数据体积自然是不容小视,再加上扩展性的需要,UEFIBIOS将不再是存放在主板上的只读存储器中,而是在硬盘划分出一块FAT32格式的扇区(ESP;UEFIBIOSSystemPartition),来存放UEFIBIOS的相关数据。

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的安全性提出了更高的要求。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论