现在EFI主板越来越多,而跟着干流硬盘逐步超越2T,GPT的呈现频率也变高了,本文介绍几个相关名词以为计算机用户供给便当。
一、EFI (可扩展固件接口,英文名Extensible Firmware Interface 或EFI)
由英特尔——一个主导个人电脑技能研制的公司推出的一种在未来的类PC的电脑体系中替代BIOS的晋级计划。BIOS技能的鼓起源于IBM PC/AT机器的盛行以及第一台由康柏公司研制出产的“克隆”PC。在PC发动的过程中,BIOS担负着初始化硬件,检测硬件功用,以及引导操作体系的职责,在前期,BIOS还供给一套运转时的服务程序给操作体系及使用程序运用。BIOS程序寄存于一个掉电后内容不会丢掉的只读存储器中,体系加电时处理器的第一条指令的地址会被定位到BIOS的存储器中,便于使初始化程序得到履行。
EFI的发生
众所周知,英特尔在近二十年来引领以x86系列处理器为根底的PC技能潮流,它的产品如CPU,芯片组等在PC出产线中占有肯定领导的方位。因而,不少人以为这一行为显现了英特尔公司欲插手固件产品商场的野心。事实上,EFI技能源于英特尔安腾处理器(Itanium)渠道的推出。
安腾处理器是英特尔瞄准服务器高端商场投入近十年研制力气规划发生的与x86系列彻底不同的64位新架构。在x86系列处理器进入32位的年代,因为兼容性的原因,新的处理器 (i80386)保留了16位的运转办法(实办法),尔后屡次处理器的晋级换代都保留了这种运转办法。乃至在含64位扩展技能的至强系列处理器中,处理器加电发动时仍然会切换到16位的实办法下运转。英特尔将这种状况归咎于BIOS技能的开展缓慢。
自从PC兼容机厂商经过净室的办法复制出第一套BIOS源程序,BIOS就以16位汇编代码,寄存器参数调用办法,静态链接,以及1MB以下内存固定编址的办法存在了十几年。尽管因为各大BIOS厂商近年来的尽力,有许多新元素增加到产品中,如PnP BIOS,ACPI,传统USB设备支撑等等,但BIOS的底子性质没有得到任何改动。这迫使英特尔在开发更新的处理器时,都有必要考虑加进使效能大大下降的兼容办法。有人曾打了一个比方:这就像保时捷新一代的全自动档跑车被人生套上去一个糟糕的挂档器。
但是,安腾处理器并没有这样的顾忌,它是一个重生的处理器架构,体系固件和操作体系之间的接口都能够彻底从头界说。而且这一次,英特尔将其界说为一个可扩展的,标准化的固件接口标准,不同于传统BIOS的固定的,缺少文档的,彻底根据经历和不流畅约好的一个事实标准。根据EFI的第一套体系产品的呈现至今已经有五年的时刻,现在,英特尔企图将成功运用在高端服务器上的技能推行到商场占有率更有优势的PC产品线中,并许诺在2006年间会投入全力的技能支撑。
比较EFI和BIOS
一个明显的差异便是EFI是用模块化,C言语风格的参数仓库传递办法,动态链接的办法构建的体系,较BIOS而言更易于完成,容错和纠错特性更强,缩短了体系研制的时刻。它运转于32位或64位办法,乃至未来增强的处理器办法下,打破传统16位代码的寻址才能,到达处理器的最大寻址。它运用加载EFI 驱动的办法,辨认及操作硬件,不同于BIOS运用挂载实办法中止的办法增加硬件功用。后者有必要将一段类似于驱动的16位代码,放置在固定的 0x000C0000至0x000DFFFF之间存储区中,运转这段代码的初始化部分,它将挂载实办法下约好的中止向量向其他程序供给服务。例如,VGA 图形及文本输出中止(INT 10h),磁盘存取中止服务(INT 13h)等等。因为这段存储空间有限(128KB),BIOS关于所需放置的驱动代码巨细超越空间巨细的状况力不从心。
别的,BIOS的硬件服务程序都以16位代码的办法存在,这就给运转于增强办法的操作体系拜访其服务造成了困难。因而BIOS供给的服务在实际中只能供给给操作体系引导程序或MS-DOS 类操作体系运用。
而EFI体系下的驱动并不是由能够直接运转在CPU上的代码组成的,而是用EFI Byte Code编写而成的。这是一组专用于EFI驱动的虚拟机器指令,有必要在EFI驱动运转环境(Driver Execution Environment,或DXE)下被解说运转。这就确保了充沛的向下兼容性,打个比方说,一个带有EFI驱动的扩展设备,既能够将其装置在安腾处理器的体系中,也能够装置于支撑EFI的新PC体系中,而它的EFI驱动不需要从头编写。这样就无需对体系晋级带来的兼容性要素作任何考虑。
别的,因为EFI 驱动开发简略,一切的PC部件供给商都能够参加,景象十分类似于现代操作体系的开发办法,这个开发办法曾使Windows在短短的两三年时刻内成为功用强壮,性能优越的操作体系。根据EFI的驱动模型能够使EFI体系接触到一切的硬件功用,在操作操作体系运转曾经阅读万维网站不再是天方夜谭,乃至完成起来也十分简略。这对根据传统BIOS的体系来说是件不或许的使命,在BIOS中增加几个简略的USB设备支撑都曾使许多BIOS规划师痛苦万分,更何况除了增加对很多网络硬件的支撑外,还得随便构建一个16位办法下的TCP/IP协议栈。
一些人以为BIOS只不过是因为兼容性问题遗留下来的无关宏旨的部分,不值得为它花费太大的晋级尽力。而反对者以为,当BIOS的呈现约束了PC技能的开展时,有必要有人对它作必要的改动。
EFI和操作体系
EFI在概念上十分类似于一个低阶的操作体系,而且具有控制一切硬件资源的才能。不少人感觉它的不断开展将有或许替代现代的操作体系。事实上,EFI 的缔造者们在第一版标准出台时就将EFI的才能约束于不足以要挟操作体系的控制方位。
首要,它仅仅硬件和预发动软件间的接口标准;其次,EFI环境下不供给中止的拜访机制,也便是说每个EFI驱动程序有必要用轮询的办法来查看硬件状况,而且需要以解说的办法运转,较操作体系下的驱动功率更低;再则,EFI体系不供给杂乱的存储器维护功用,它只具有简略的存储器办理机制,详细来说便是指运转在x86处理器的段维护办法下,以最大寻址才能为限把存储器分为一个平整的段,一切的程序都有权限存取任何一段方位,并不供给实在的维护服务。
当EFI一切组件加载结束时,体系能够敞开一个类似于操作体系Shell的指令解说环境,在这里,用户能够调入履行任何EFI使用程序,这些程序能够是硬件检测及除错软件,引导办理,设置软件,操作体系引导软件等等。理论上来说,关于 EFI使用程序的功用并没有任何约束,任何人都能够编写这类软件,而且作用较曾经MS-DOS下的软件更富丽,功用更强壮。一旦引导软件将控制权交给操作体系,一切用于引导的服务代码将悉数停止作业,部分运转年代服务程序还能够持续作业,以便于操作体系一时无法找到特定设备的驱动程序时,该设备还能够持续被运用。
EFI的组成
一般以为,EFI由以下几个部分组成:
1. Pre-EFI初始化模块
2. EFI驱动履行环境
3. EFI驱动程序
4. 兼容性支撑模块(CSM)
5. EFI高层使用
6. GUID(GPT) 磁盘分区
在完成中,EFI初始化模块和驱动履行环境一般被集成在一个只读存储器中。Pre-EFI初始化程序在体系开机的时分最早得到履行,它担任开端的 CPU,主桥及存储器的初始化作业,紧接着载入EFI驱动履行环境(DXE)。当DXE被载入运转时,体系便具有了枚举并加载其他EFI驱动的才能。
在根据PCI架构的体系中,各PCI桥及PCI适配器的EFI驱动会被相继加载及初始化;这时,体系从而枚举并加载各桥接器及适配器后边的各种总线及设备驱动程序,循环往复,直到最终一个设备的驱动程序被成功加载。
正因如此,EFI驱动程序能够放置于体系的任何方位,只需能确保它能够按次序被正确枚举。例如一个具PCI总线接口的ATAPI大容量存储适配器,其EFI驱动程序一般会放置在这个设备的契合PCI标准的扩展只读存储器(PCI Expansion ROM)中,当PCI总线驱动被加载结束,并开端枚举其子设备时,这个存储适配器旋即被正确辨认并加载它的驱动程序。部分EFI驱动程序还能够放置在某个磁盘的EFI专用分区中,只需这些驱动不是用于加载这个磁盘的驱动的必要部件。
在EFI标准中,一种打破传统MBR磁盘分区结构约束的GUID磁盘分区体系(GPT)被引进,新结构中,磁盘的分区数不再受约束(在MBR结构下,只能存在4个主分区),而且分区类型将由GUID来表明。在很多的分区类型中,EFI体系分区能够被EFI体系存取,用于寄存部分驱动和使用程序。许多人忧虑这将会导致新的安全性要素,因为EFI体系比传统的BIOS更易于遭到计算机病毒的进犯,当一部分EFI驱动程序被损坏时,体系有或许面对无法引导的状况。
实际上,体系引导所依靠的EFI驱动部分一般都不会寄存在EFI的 GUID分区中,即便分区中的驱动程序遭到损坏,也能够用简略的办法得到康复,这与操作体系下的驱动程序的存储习气是共同的。CSM是在x86渠道EFI 体系中的一个特别的模块,它将为不具有EFI引导才能的操作体系供给类似于传统BIOS的体系服务。
EFI的开展
英特尔无疑是推行EFI的积极要素,近年来因为业界对其知道的不断深入,更多的厂商正投入这方面的研讨。包含英特尔,AMD在内的一些PC出产厂家联合成立了联合可扩展固件接口论坛,它将在近期推出第一版标准。这个安排将接手规划EFI开展的重担,并将英特尔的EFI结构解说为这个标准的一个详细完成。别的,各大BIOS供给商如Phoenix, AMI等,原先被以为是EFI开展的阻止力气,现在也不断的推出各自的解决计划。剖析人士指出,这是因为BIOS厂商在EFI架构中从头找到了比如 Pre-EFI发动环境之类的商场方位,但是,跟着EFI在PC体系上的成功运用,以及英特尔新一代芯片组的推出,这一部分商场份额将会不出预料的在英特尔的掌控之中。