90年代初:传统BIOS的天下。计算机系统的翻新重大受限。
1997年:英特尔开局为安腾电脑设计BIOS。
1999年:EFI1.0推出。
2000年:EFI1.02颁布。
2002年:EFI1.10颁布。
2005年:UEFI论坛成立。
2006年:UEFI2.0颁布。
2007年:UEFI2.1
2008年:UEFI2.2
在UEFI被发明之前,PC机都在用传承自1979年的传统BIOS。初代BIOS由几个IBM工程师开发,他们从没有想到自己写的汇编程序会用这么久。我有幸遇到过其中之一,一个满头银发的慈爱老头,过后他还在IBM上班,他对传统BIOS能上班那么久也深感惊讶,当然还有荣幸。传统BIOS在发明后虽经过修修补补,但实质没有丝毫变动:一堆用汇编写的配件初始化代码,Itworks,但它敞开、奥秘和充溢各种不清不楚的预设和祖传代码。
在1997年,过后的Intel员工们正努力于如何允许基于安腾处置器芯片组的主机。虽然设备中的一些部件是全新的:处置器,芯片组,电路板设计设计,操作系统等等,然而初期的方案还是经常使用传统的BIOS代码来成功此项上班。这样可以致少保障一个物品不变,BIOS。方案启动得并不顺利,最终该方案被证明并无法行。由此也就遗留下一个疑问:该如何在这些平台上疏导操作系统,留给Intel交出处置方案的期间已无余一年。
这一应战催生了所谓的英特尔疏导方案(IBI),指标定位于开发一套允许安腾处置器的疏导规范。名目组思索了理想的可选方案:发明还是购置,其中包含驳回IEEE放开固件规范,经常使用ARC平台规范,或是从无到有构思一套全新的处置方案。放开固件规范虽然提供了一种不错的技术手腕,但在可用期间外在业务基础设备部署方面有所无余,而ARC平台规范因其在平台设计上太过受限也不得不丢弃。相似的,其余的购置选项亦不能在可用期间内给出完善的处置方案。因此Intel外部选择开发一套全新的机制。
思索究竟层编程的复杂性以及宿愿操作系统尽或者少地去了解平台的配件细节,在平台固件和OS加载器间经常使用初级C言语接口看起来成为一个肯定选用。有了这个绝佳的想法,为启动环节定义一个在固件和操作系统间CPU架构有关的API只是剩下最后的一跃而已。
因为历史要素,操作系统关于配件平台和系统BIOS有许多隐含的依赖相关。这些鲜为人知的要素阻碍了改革,使翻新辣手且相对低廉。定义这样的API并使它可以实用于个别的计算机能带来极大的价值。很显然,这样一种可以缩小平台和操作系统相互隐含依赖的全新技术,将有或者解耦平台和操作系统的翻新速率。
这样一系列认知造成第一次性固件接口数量的大规模增长。经过驳回CPU-ISA中性的形式,程序的实用范畴可以扩展到更多的英特尔处置器家族。甚至从20世纪90年代前期开局,IA32计算机上经常使用的惯例BIOS就已显著成为翻新的连累。新型固件接口的设计者们因此也开局尝试用新技术疏导IA32处置器。在大概1999年的这段期间,IBI方案制订了新接口的首版规范。开发者们将新规范命名为EFI(ExtensibleFirmwareInterface):对任何特定类型的电脑坚持中立性,仅用意形容接口。同时呐喊使之成为未来生长的基准。
EFI被第一代基于安腾处置器的计算机所驳回,并从此作为其疏导程序。英特尔于2000年12月颁布了EFI规范1.02的初始版本,涵盖将控制权从平台固件转交给操作系统所需的操作范畴。从一开局,英特尔就为的驳回设立了很低的门槛,同时颁布了简直没有任何容许限度和免版税的示例实现代码。直到当天,低门槛的准则依然是其外围思念。
在早期版本的基础上,2002年末颁布了EFI规范1.10。这次降级重要在规范中增加了一个固件驱动模型,该模型处置了在疏导环节中经常使用扩展卡设备的疑问。实质上,这提供了一种代替最先运行在ISA总线设备上的软弱的16位可选ROM的可行性,并很快也用于PCI疏导设备。
在2005年终,EFI在IA32上推行有所起步,但还不尽善尽美。然而趋向显著在通知人们:惯例BIOS技术终将被彻底淘汰。鉴于固件是IA32平台的关键一环这样一个不容漠视的理想,在2005年年中时刻,包含BIOS供应商,OS供应商,系统制作商以及芯片消费公司在内的行业介入者一致建设了一致的EFI论坛(UEFI,UnifiedExtensibleFirmwareInterface)并常年独特治理这项技术。
Intel奉献了EFI规范作为新论坛的开局,开创成员们以真正一致的形式上班,制订了取得宽泛的行业允许和认可的新规范。这份由论坛制订的首版规范——UEFI规范2.0,于2006年一月发行。
在设计固件与操作系统直接口的同时,论坛赞同为固件外部结构合乎UEFI规范的规范化接口。这项上班发生了PI规范(PlatformInitialization)。规范1.0于2016年10月颁布。这份规范旨在使芯片驱动程序可以在各种固件厂商开发的平台上直接运转而无需修正,从而简化和缩短新产品的部署。
论坛继续就UEFI规范(2007年1月颁布2.1版本)的降级达成共识。除此之外,这种基础设备的引入使得固件的用户界面愈加图形化,本地化。
2008年9月推出的2.2版本参与了对IPv6的允许,同时改良了平台安保战略。2.2版本曾在很短的段期间内是最大/最完善的版本,很大一局部要素在于实施在规范之后。最新的规范是UEFI2.5和PI1.4。
Intel提供了首版EFI规范的最后的开源示例成功。随着EFI规范演化成UEFI规范并且还成功了PI规范。随着UEFI和PI规范的降级,这项上班还在启动中。名目最早落户于。在开源大潮的率领下,先扎根于SourceForge,在Github火遍世界的状况下,也移步于Github。大家有兴味可以在tianocore·GitHub下找到它的身影。
当初,从自动手机到打印机,笔记本电脑,主机,甚至超级计算,UEFI技术被曾经宽泛经常使用。有前瞻性的新设备敌对台技术将经过驳回UEFI缩短上市期间从而更容易成功受益。
值得一提的是UEFI内核的大局部代码是由Intel的中国工程师开发的。在大家一次性次电脑的反常运转前面,有他们辛勤上班背影。他们也为固件的开源和国产化做出了自己的奉献。
假设大家宿愿深化了解UEFI,这里有几个疑问大家可以深化思索一下:
1.为什么UEFI驳回PE/COFF格局作为UEFI驱动和运行的规范,而不是ELF格局?
2.绝大少数UEFI外围代码都是C言语写的,为什么不用C++,可以无法以用C++?抢手的OO和他有什么相关?
3.UEFI和其余的uboot,coreboot等各自的好处和相关如何?
4.UEFI为什么选用FAT作为UEFI分区规范?
UEFI历史和架构其余文章:
欢迎大家关注本专栏和用微信扫描下方二维码参与微信群众号"UEFIBlog",在那里有最新的文章。关注群众号,留言资料,有一些地下芯片资料供下载。
标签: UEFI、 固件、 电脑常识、本文地址: https://yihaiquanyi.com/article/da0f863c549e910c0731.html
上一篇:软件深化设计是什么软件篇深化PCI与PCIe之...