论文部分内容阅读
UEFI、CSS、LinuxBIOS共同撑起新一代BIOS的天空,但不管局势朝着哪一个方向发展,计算机都将从新一代BIOS中明显受益—这并非是说新一代BIOS可以直接提高计算机的性能,而在于可靠性与可维护性将获得质的飞跃。
PC机已经经历了将近三十年历程,从第一台IBM PC到现在的Core 2 Quad/Athlon 64 FX顶级机型,计算机的硬件架构发生了翻天覆地的变化,无论芯片规模、半导体工艺、存储容量、总线性能还是整机运算能力,都与早期的PC没有半点相同的地方。如果要从全方位角度来找到它们的共同点,那便是BIOS。BIOS的设计在过去三十余年中几乎没有多大变化,设计者只是对它进行常规的升级,使之能够支持新的硬件,但它的功能并未获有效的增强。这种情况不会持续太久,计算工业意识到传统BIOS的局限性,开发替代技术很早就被提上日程。现在,BIOS的接替者拥有三个候选,它们分别是英特尔的EFI、微软与Phoenix的CSS以及开源业界带来的LinuxBIOS。
BIOS在计算机中的地位
BIOS的全称是“Basic Input/Output System”,也就是基本输入/输出系统,它主要负责开机时硬件启动和检测等工作,同时也是操作系统控制硬件的中介。这套原则是IBM在推出PC时所创建,IBM认为,如果操作系统直接负责硬件控制,那么一旦硬件变动,操作系统也必须作出改变,这将带来繁琐的代码修改工作与软硬件兼容问题,IBM所提出的解决方案就是在硬件与操作系统之间增加一个中介控制软件,这便是BIOS。这样在BIOS的帮助下,PC厂商若遇到要更改硬件规格时,只要对BIOS程序作适应性的调整,操作系统无需作任何变动。IBM还预见到各类PC硬件都会有频率调节的要求,这部分任务也由BIOS完成,用户可通过BIOS对各个硬件的电气特性作初始化或工作参数的设置,这套体系到今天为止都没有发生多少的变化。
在早期的DOS时代,BIOS的功能极其强大,因为操作系统与硬件完全隔离,这样操作系统对硬件的调用都必须经过BIOS。为了对硬件资源进行有效调度,IBM为BIOS引入了“中断(Interrupt)”的概念,即每个硬件在发生动作时,都会触发BIOS内特定的“中断处理程序”,向BIOS申请运作权限;同样,操作系统若要调用某个硬件,也触发BIOS中断,呼叫获得硬件的使用权─这套机制在DOS时代非常普遍,而各类硬件驱动程序也效仿BIOS的设计,为系统提供额外的硬件控制功能。
但在Windows NT和Linux出现之后,BIOS的使命有所变化。Windows NT和Linux都将许多通用的硬件控制程序直接纳入操作系统中完成,这样就不必凡事都呼叫BIOS,以提升硬件资源的调用效率,尤其是Linux系统在这方面的功能更为完善。这样一来,BIOS就不再需要负责硬件资源的管理和分配,而只要负责硬件参数的设定和维护。对于DIY发烧友来说,BIOS的最大用处大概是体现在超频调校方面,而主板厂商也迎合这一点对BIOS进行超频功能上的强化;但除了这些用户之外,已经极少有人再利用BIOS来进行硬件的调整工作,许多PC用户甚至压根儿都不知道有BIOS这么一回事。
在这个转换过程中,BIOS逐渐从前端退到了幕后,现在它的主要任务就是在开机阶段对硬件进行侦测、测试、参数设置以及启动操作;而过去的PC硬件都较为简单,BIOS只需参考存储在CMOS中的资料即可完成硬件设置和驱动任务,如果通过BIOS对硬件进行调整,那么新设置的参数也直接写入CMOS中供操作系统所使用。但随着技术的发展,PC的硬件系统变得越来越复杂,参数规格也不断增多,因此虽然操作系统接管了部分BIOS的职能,让BIOS在操作系统载入后被呼叫的概率大大降低,但BIOS现在却要支持更多的硬件,所记录和使用的硬件参数也大幅度增加。早期的BIOS程序代码只有8KB大小,而现在的BIOS容量扩大了数十倍,不得不以压缩的方式存储在CMOS中,在计算机启动后才被载入并解压执行,但即便如此,现在BIOS所占用的空间仍达到“128KB+ 64KB”,相当于早期BIOS的24倍。
在386时代之前,PC的硬件系统相当单一,BIOS都是完全通用的,BIOS安装在任意的主板上都能够正确运行;而进入386时代之后,PC厂商开始采用英特尔、威盛、矽统和扬智等各公司的芯片组,PC硬件朝着多元化方向迈出一步,而BIOS也就必须为不同芯片组的主板定制,硬件厂商开始拥有很大的自主权。进入到Windows 98时代后,BIOS开始遵循APM(Advanced PowerManagement)高级电源管理标准,可以为各个PC部件提供更灵活的电源管理机制─符合该标准的BIOS也被称为APM BIOS。在当时,PC硬件高速发展,对电源供应和管理的能力要求也越来越高,APM单一的功能难以满足未来需要,在英特尔、微软、康柏、凤凰和东芝公司的主导之下,功能更全面的ACPI(Advanced Configuration and Power Interface)标准诞生,ACPI可提供电源供应、电源状态、温度等项目的管理。ACPI 1.0标准于1996年12月推出,微软在Windows Me系统中对其提供全面的支持(Windows 98 SE亦可支持ACPI),BIOS厂商、硬件厂商和作为操作系统设计者的微软公司也都随即跟进,微软在Windows 98即开始ACPI标准,不过全面的支持是在Windows Me推出之后,BIOS和主板厂商也是在那时才作好准备,这样BIOS就从APM体系转入ACPI体系,而它也被称为“ACPI BIOS”。大约在2000年中期,康柏、英特尔、微软、凤凰和东芝为首的29家公司联合宣布将开发ACPI 2.0,新版本主要增强了64位服务器系统的支持,英特尔Itanium平台也被纳入该体系,而Windows XP系统开始对新版ACPI提供支持。到目前为止,ACPI的最新版本是3.0,它于2004年9月份正式推出,今天PC主板中的BIOS几乎都隶属于该体系。
英特尔EFI/UEFI
在ACPI 3.0标准出现之后,BIOS技术也近乎达到它自身能力的极限。由于BIOS都是采用汇编语言编写,要进行性能上的增强难度极大,即便开发人员能够克服语言上的障碍,BIOS也受到自身架构的限制—作为DOS时代的产物,BIOS都只能工作在16位“实模式(Real Mode)”状态下,可管理的最高内存容量仅有1MB,ROM(Read Only Memory)容量则被限制在128KB,这就注定了BIOS很难通过优化改良获得本质性的突破。而与此同时,业界和用户都期待计算机具有更好的可管理性,例如直接通过BIOS进行诸如系统镜像/恢复、查毒杀毒、远程维护等工作,这就要求BIOS大幅度扩充其能力。鉴于传统BIOS缺乏进一步发展的潜力,业界认识到要实现上述目标,开发出替代现行BIOS的技术势在必行。在2000年初,英特尔提出下一代BIOS技术“EFI”的构想,并很快联手其他业者着手EFI的开发,共同参与者包括AMI和台湾的系微(Insyde),在这些厂商的共同努力下,EFI 1.0、1.10标准相继出台,并开始在Itanium服务器系统中获得应用。EFI前瞻性的设计获得业界的广泛认同,2005年9月,英特尔、AMD、American Megatrends、戴尔、惠普、IBM、Insyde、微软和凤凰科技等重量级企业共同成立“UEFI(Unified EFI)论坛”,这家非盈利性的机构将从英特尔手中接过EFI的开发和标准制定权,EFI也因此更名为UEFI。目前,UEFI论坛正为2.0版标准而努力,该版本其实是以EFI 1.10为基础发展而来。
EFI/UEFI的设计架构
与BIOS不同,EFI和UEFI所采用的程序语言是著名的C语言—C语言一直都有“中级语言”之称,相关代码的编制远比汇编来得简单,同时又可以很好地控制硬件,很自然成为UEFI的不二之选。UEFI与现行BIOS另一个根本性不同在于,UEFI采用了模块化的设计,我们可以从图2中看到:位于最底层的是硬件系统,硬件由UEFI的驱动执行环境(Driver Execution Environment)控制—它包含协议架构(Procotol architecture)、平台驱动(Platform driver)、框架驱动(Framework driver)以及兼容支持模块(Compatibility support module)等模块化组件,再往上才是UEFI的核心、OS载入器、各类扩展功能以及兼容支持模块。事实上,UEFI就是一套缩微化的操作系统,它被直接固化于主板上,给用户提供强大的维护和扩展功能,借以提高计算机的可维护性,这一点我们可以从后面的介绍中了解到。
在UEFI系统中,驱动执行环境负责UEFI与硬件的交互,这实际上是通过“协议架构(Architecture procotol)”模块加以实现的。当系统启动时,UEFI通过协议架构将参数传达给相应的硬件,硬件则据此确定自身的工作状态,这一点同现行BIOS并无本质性差异。但与BIOS不同,UEFI的驱动执行环境还包含“平台驱动(Platform driver)”和“框架驱动(Framework driver)”,两者共同建立了UEFI扩展功能运行的基础。另外为了兼容现行的硬件,UEFI还包含一个“兼容支持模块(Compatibility support module)”,它可以在16位实模式下启动计算机,这样,即便PC平台中的部分硬件没有专门为EFI设计(例如显卡、声卡等),EFI的兼容支持模块也可以让它们在整个系统中正常工作,从而有效降低从BIOS到EFI过渡的门槛。
位于UEFI系统顶层的便是“UEFI操作系统装载器(UEFI OS Loader)”和“预启动应用(Pre-boot application)”,前者相当于UEFI的操作系统部分,后者则相当于扩展的应用程序部分,例如杀毒工具、系统镜像工具都属于“预启动应用”的范畴。UEFI系统装载器有两个功能:一是引导Windows之类的操作系统启动,第二就是引导UEFI系统本身,如果用户选择后者,那么将会进入到UEFI的设定界面。UEFI同时支持传统的文本界面和GUI图形界面,文本界面其实只用于兼容模式下,GUI图形界面则是UEFI的标准配备;在文本模式下,UEFI也只能支持640×480 VGA分辨率显示,而在GUI模式下,用户可以自行选择更高的分辨率—UEFI的“平台驱动(Platform driver)”中已包含了显卡的彩色显示驱动支持,用户可以根据显示器情况来使用标准分辨率,从而获得视觉观感更优良的GUI操作界面。不仅如此,UEFI还具有强大的自定义功能,例如开发者可以自行设计漂亮的GUI界面,用户也可以为UEFI系统装载器选择自己喜欢的图片作为背景,这一点显然比BIOS蓝底白字的文本界面来得人性化。
UFEI的引导功能远比现行BIOS来得强大,它整合了OS启动管理器,可直接完成多系统的识别和引导。倘若你是一个Linux用户,便会知道这项功能意义重大,用户不再需要为操作系统重装,启动管理器丢失而烦恼,UEFI自动接管了多系统引导职能,这样的设计颇富人性化。UEFI还提供一个标准化的接口,“预启动应用”便是通过该接口与UEFI的核心挂接,预启动应用可以包括各种各样的扩展工具,例如Ghost系统镜像、磁盘检测、UEFI版本升级、病毒查杀或者其他安全软件都可以整合于其内,这也是各BIOS厂商与主板厂商可以发挥的空间。
为了实现系统维护的扩展职能,UEFI要求具有控制硬件的能力,这个任务同样是由平台驱动完成的。平台驱动包括显卡驱动、芯片组、硬盘、鼠标、键盘等设备的驱动程序,这些程序都是以压缩的二进制文件存在,但功能仅限于为EFI运行提供基础条件,例如实现彩色GUI输出、对硬盘进行读取和写入等等,它们与操作系统的3D加速驱动、硬盘控制器驱动并不是同一个概念。从性能上讲,UEFI的通用驱动显然不能同硬件厂商开发的驱动相提并论,但它足以为UEFI的维护职能提供可靠的保障。由于内建功能的多样化,它的数据体积自然不容小觑,加上扩展功能也需要额外的存储空间,因此UEFI不再被存放在主板上的只读存储器中,而是在硬盘划分出一块FAT32格式的扇区ESP(EFISystem Partition,EFI系统分区),来存放UEFI相关的各类数据。不过这种设计也带来一个隐患:倘若硬盘实体损坏,或者遭遇病毒入侵造成UEFI区域的数据丢失,那么将会造成严重的后果。另外由于UEFI必须与硬盘捆绑,暂时只有在品牌整机中才能实现,DIY平台如何实现UEFI方案暂时还不甚明了。
UEFI 2.0标准的BIOS产品
UEFI包括硬件控制和OS软件两大模块,前者是一套标准化的硬件连接协议,任何版本相同的UEFI,硬件控制部分的内容就完全相同;后者则是提供给厂商用C语言撰写扩展功能的开放接口,这也是厂商可以自主定义的部分。
作为UEFI的发起者,英特尔承担最关键的工作,它撰写了代号为“Tiano”的EFI功能核心框架,其他厂商都是在此基础上挂接各自编写的功能模块。英特尔最初对EFI的推行非常乐观,它计划在2005年时就在企业领域完全实现EFI支持,到2006年则实现桌面、移动和服务器平台的全线迁移。这个计划当然没能成功施行,英特尔后来主导建立了UEFI论坛进行共同推广,从目前的情形来看,UEFI有望在今年中期通过Santa Rosa平台进入到移动领域,并随后朝向桌面领域扩展,预计到2008年,UEFI产品会逐渐成为市场主流。
在4月份召开的英特尔信息技术峰会(Intel Developer Forum,Spring 2007)上,BIOS厂商系微(Insyde)科技展出了名为Insyde H2O的UEFI产品,Insyde H2O遵循UEFI 2.0标准,已经进入到成熟可用的阶段。由于Insyde与英特尔良好的合作关系,以及Insyde在笔记本电脑、嵌入设备和信息家电领域的不凡实力,Insyde H2O很有可能在Santa Rosa迅驰平台中出现,奏响从BIOS转向UEFI的序曲。另外,兆日技术(Sinosun)也在峰会上展出TPM 1.2标准的安全芯片,该款产品可支持UEFI 2.0平台,并在Insyde H2O平台中获得成功验证,两者共同为计算机用户提供可靠的信息安全保障。
微软与凤凰科技的CSS
在英特尔发起EFI的两年后,微软公司也决定发展自己的下一代BIOS技术,并将其命名为“CSS(Core System Software)”。不过,微软开发CSS的目的并不是那么简单,它希望让Windows系统直接具有管理硬件的能力,而不再需要经过BIOS,如果这一计划能获得成功,那么微软的影响力就将渗透到整个硬件平台,其他操作系统则处于非常不利的地位。事实上,早在Windows NT时代,微软就将许多BIOS的工作纳入操作系统的核心,大大减轻了对BIOS的依赖,但是诸如硬盘控制之类的功能,仍然必须经过BIOS。微软创建CSS的目的就在于开发出一种真正可以取代BIOS的软件技术,并将它作为Windows系统的一部分,这样上层的应用程序就可以直接访问并管理各项硬件资源,从而提高系统的性能。微软选择与凤凰科技共同来发展CSS,微软负责提供与操作系统的接口,CSS软件部分的核心工作则是主要由凤凰科技独立完成。
CSS实现硬件与操作系统的高度结合,这项特性让它可以变得更加强大,并提供比传统BIOS更为全面的保护。凤凰科技在CSS架构中建立了符合可信任计算标准的核心代码,实现与新一代Windows平台的对接,同时,CSS还可以直接依靠系统中的防毒软件来抵御病毒的攻击。对用户来说,CSS最大的好处就是让电脑操作变得更加简单,同时也具有更出色的安全性能,并在可维护性方面提供了巨大的便利—如果用户需要对硬件参数进行调整,那么只需要打开Windows的控制面板,在对应的项目中直接调整硬件,并且可以即时地生效而不必重启系统,借助这一功能,DIY用户可以轻松地实现超频运作,压榨计算系统的每一分潜能。微软公司同时计划将数字版权管理系统(DRM)直接纳入CSS体系,这样CSS可以直接对软件的合法性进行检测,微软希望通过这一手段来彻底防范盗版,就技术层面而言,CSS的确可以做到这一点,但这显然不会受到用户的欢迎。即便用户具有对盗版行为深恶痛疾的觉悟,也很难喜欢处于一个高度受控制的软件环境,这意味着使用自由被剥夺。许多反对者则认为,CSS让微软获得过大的权力,就算用户堂而皇之使用盗版软件,也只能由执法部门进行惩处而非微软公司。
不过,CSS的最大问题在于安全隐患。操作系统与CSS的紧密结合强化了对硬件的控制能力和提高效率,但一旦恶意软件取得操作系统的控制权,就可以对系统安全造成更具破坏力的威胁,例如可以更容易监视用户行为,暗中窃取数据,甚至还可以摧毁你的硬件系统,这一点让业界深为惧怕。基于上述理由,CSS并没有获得业界的广泛认可,尽管凤凰科技是目前最大的BIOS供应商,但也没有能力将CSS成功推广,加之UEFI被广泛支持、获得事实上的下一代BIOS地位,CSS的发展归于沉寂,而微软公司与凤凰科技最终也都对UEFI提供支持,在这样的背景下,CSS大概只能成为一种非标准化的特色技术。
来自开源阵营的黑马
在UEFI和CSS之外,新兴的LinuxBIOS被认为是一匹黑马。但事实上,LinuxBIOS的历史更为悠久,早在Linux概念刚刚兴起的1999年,LinuxBIOS计划就开始成立。LinuxBIOS的原理很简单,我们知道,Linux具有直接管理到硬件资源的能力,即便没有BIOS的帮助,Linux系统也能够启动系统并运行,如果利用Linux灵活的可裁剪性设计,开发者完全可以设计出一套功能强大的BIOS,这便是LinuxBIOS项目的发展初衷。
LinuxBIOS起初定位在服务器集群,这主要是因为集群系统所使用的也是传统的BIOS,这类BIOS依赖可靠性低的软盘和硬盘启动,这些BIOS不仅性能低下而且经常出错,更糟糕的是维护工作简直是一场噩梦—假设一个集群系统拥有128个节点,那么维护人员就必须借助128个键盘和显示器来逐一更改BIOS,这样的工作简直可怕之极。有鉴于此,Los Alamos国家实验室高级计算实验室的Ron Minnich在1999年创建了LinuxBIOS项目,而名为James Hendricks和Dale Webster的两个大学本科生,都花费了整个寒假来整理LinuxBIOS的设计可行性。在这之后,LinuxBIOS项目正式启动,英特尔、Acer、SiS、VIA等厂商在开始时都表示大力支持,并纷纷提供硬件赞助LinuxBIOS的研究发展,它们希望能获得免费的BIOS资源,从而在传统BIOS之外获得新的选择。但Linux的发展进程相当缓慢,加上铁板一块的GNU许可限制,许多厂商在热衷一段时间后顿感失望,并逐渐淡出该计划,英特尔公司后来独立发起EFI计划,同时也对LinuxBIOS表示反对态度。然而,在硬件厂商纷纷放弃LinuxBIOS的时候,互联网巨头Google却开始大力支持LinuxBIOS,Google给LinuxBIOS项目相当的资金赞助,并协助LinuxBIOS建立了一个针对硬件品质保证和自动化测试的研究环境,这在很大程度上促进了LinuxBIOS的发展。经过多年的发展之后,LinuxBIOS逐渐走入成熟,它的第一个成功应用就是进入OLPC(One Laptop per Child)领域,成为OLPC平台的BIOS,这在某种程度上鼓舞了开发者和用户的信心。而首个支持LinuxBIOS的主板厂商便是技嘉科技,技嘉最近推出一款型号为M57SLI-S4的AMD AM2平台主板,所采用的就是LinuxBIOS,成为板卡产品中的另类,这也充分说明LinuxBIOS已经可以进入实用阶段。
LinuxBIOS基本上可以看作一个超精简的Linux系统,它只是在Linux内核基础上增加了针对系统硬件侦测与激活的程序代码,在内核启动之后随即完成硬件的检测与激活操作,然后将控制权交给PC中的主操作系统。尽管目前接受度仍相当稀少,但LinuxBIOS的优点不可忽视:首先,LinuxBIOS也是采用C语言编写,可维护性与程序更新都远比汇编语言编制的传统BIOS来得简单—在板卡产品更新频率的今天,LinuxBIOS能够帮助硬件厂商快速完成转换,从而更快地将新品推向市场;另外,一旦硬件产品完成功能定型,LinuxBIOS的后续维护工作也更为简易,这对于硬件厂商具有莫大的吸引力。其次,LinuxBIOS性能出色,以X86版本的LinuxBIOS为例,只需要执行区区16个指令它就能切换到32位模式下,在此模式下LinuxBIOS的效能相当出众,只需要3秒钟时间就能够完成所有的硬件检测并开始引导主操作系统。第三,LinuxBIOS完全不包含DRM保护机制,用户的隐私权和自由度获得最大的保障,同时骇客也更加难于入侵;而对注重安全性的政府机构、军事单位等用户来说,遵循GNU(General Public License)通用公共许可的LinuxBIOS高度透明,用户彻底掌握了LinuxBIOS的程序代码,由此确保计算机不受暗中的控制。除此之外,LinuxBIOS在嵌入领域有相当高的价值,LinuxBIOS一般仅占用数十KB的空间,可以直接纳入主板的2M/4Mbits闪存内,如果硬件厂商在LinuxBIOS基础上添加网络功能、存储功能、Web服务等功能,那么它可以直接作为简单的服务器使用,例如可以作为家用NAS、无线路由器等,应用领域颇为广阔。与UEFI类似,LinuxBIOS具有很高的扩展性,硬件厂商可以在此基础上增加病毒防护、系统镜像、远程维护接口等功能模块,从而获得媲美UEFI的强大功能。
尽管有如此之多的优点,硬件厂商对LinuxBIOS更多是持抵触态度,这主要是由于LinuxBIOS的GNU协议要求任何开发者都必须公开它们的代码,如果厂商的所有产品都采用LinuxBIOS,那就意味着自己的关键技术可以轻易为竞争对手获取,这道障碍成为LinuxBIOS推广的最大壁垒。因此,尽管LinuxBIOS立意高远,锁定高端的服务器集群,但并没有太多的服务器厂商热衷,反而是在一些注重低成本的中低端领域,LinuxBIOS迎来了不错的契机,如OLPC和技嘉M57SLI-S4主板都已经成为LinuxBIOS的成功案例,预计未来LinuxBIOS在这些领域的发展空间依然广阔,但能否在高端市场占据一席之地还有待观察。
前瞻
UEFI、CSS、LinuxBIOS共同撑起新一代BIOS的天空,在这三者之中,CSS因其浓重的专属性色彩而得不到支持,在未来也很难获得推广,而作为主导者的微软公司与凤凰科技也都将重点转移到对英特尔UEFI的支持。UEFI显然将成为新一代BIOS的标准,从接下来的2007年中期开始,我们将看到UEFI开始广泛推行。事实上苹果公司已经先行一步,其X86 Mac机型从去年开始便引入UEFI,目前全系列的Mac计算机都基于UEFI平台。LinuxBIOS更多扮演黑马角色,低成本、高性能以及卓越的灵活性让它在新兴的市场占有一席之地,得益于活力四射的开源阵营的助力,LinuxBIOS在未来将会占有越来越重要的地位。但不管局势朝着哪一个方向发展,计算机都将从新一代BIOS中明显受益—这并非是说新一代BIOS可以直接提高计算机的性能,而在于可靠性与可维护性将获得质的飞跃。
现行的ACPI BIOS体系
ACPI成为业界标准之后迅速占据统治地位,它的出现让计算机系统更为灵活和人性化,简单点说,ACPI是实现OSPM(Operating System-directed Power Management,操作系统直接电源管理)功能的关键部分,该标准赋予BIOS、操作系统和周边硬件可以互相交换电源使用状态的相关信息,这些信息包括供电的开、关、是否处于节电模式等等,BIOS和操作系统都支持ACPI规范之后,操作系统便能够通过BIOS来调节硬件的电源供应,如果硬件本身具有节电运行能力,那么操作系统便能够直接控制硬件的电源供应,ACPI BIOS则在同时调整硬件的工作状态,这套机制最典型的应用便是英特尔处理器的SpeedStep节能技术。另外在使用PnP设备时,ACPI标准也可以在设备插入系统时自动侦测并管理它的电源供应。
除了系统电源管理外,ACPI还定义了周边电源/效能管理、处理器电源/效能管理、即插即用与系统组态管理、系统/部件温度监控、电池管理、总线控制器管理以及各类嵌入控制器的管理,基本上涉及了PC硬件的方方面面。因此ACPI BIOS可提供非常强大的电源/功耗管理能力,今天PC内的CPU、GPU、芯片组、内存、总线等各个子系统大都处于ACPI的监控之下,并朝着每瓦性能的最佳化方向努力。
与Windows系统不同,Linux系统具有全面的硬件管理职能,BIOS只是在开机启动阶段才发挥作用,但看到ACPI架构所带来的诸多方便性,Linux随后也提供对ACPI的支持,这种做法被实践证明是非常明智的,毕竟此举有效提升了Linux系统的兼容性,同时也减少系统开发的难度,唯一的不足在于令Linux核心变得没那么精简。
PC机已经经历了将近三十年历程,从第一台IBM PC到现在的Core 2 Quad/Athlon 64 FX顶级机型,计算机的硬件架构发生了翻天覆地的变化,无论芯片规模、半导体工艺、存储容量、总线性能还是整机运算能力,都与早期的PC没有半点相同的地方。如果要从全方位角度来找到它们的共同点,那便是BIOS。BIOS的设计在过去三十余年中几乎没有多大变化,设计者只是对它进行常规的升级,使之能够支持新的硬件,但它的功能并未获有效的增强。这种情况不会持续太久,计算工业意识到传统BIOS的局限性,开发替代技术很早就被提上日程。现在,BIOS的接替者拥有三个候选,它们分别是英特尔的EFI、微软与Phoenix的CSS以及开源业界带来的LinuxBIOS。
BIOS在计算机中的地位
BIOS的全称是“Basic Input/Output System”,也就是基本输入/输出系统,它主要负责开机时硬件启动和检测等工作,同时也是操作系统控制硬件的中介。这套原则是IBM在推出PC时所创建,IBM认为,如果操作系统直接负责硬件控制,那么一旦硬件变动,操作系统也必须作出改变,这将带来繁琐的代码修改工作与软硬件兼容问题,IBM所提出的解决方案就是在硬件与操作系统之间增加一个中介控制软件,这便是BIOS。这样在BIOS的帮助下,PC厂商若遇到要更改硬件规格时,只要对BIOS程序作适应性的调整,操作系统无需作任何变动。IBM还预见到各类PC硬件都会有频率调节的要求,这部分任务也由BIOS完成,用户可通过BIOS对各个硬件的电气特性作初始化或工作参数的设置,这套体系到今天为止都没有发生多少的变化。
在早期的DOS时代,BIOS的功能极其强大,因为操作系统与硬件完全隔离,这样操作系统对硬件的调用都必须经过BIOS。为了对硬件资源进行有效调度,IBM为BIOS引入了“中断(Interrupt)”的概念,即每个硬件在发生动作时,都会触发BIOS内特定的“中断处理程序”,向BIOS申请运作权限;同样,操作系统若要调用某个硬件,也触发BIOS中断,呼叫获得硬件的使用权─这套机制在DOS时代非常普遍,而各类硬件驱动程序也效仿BIOS的设计,为系统提供额外的硬件控制功能。
但在Windows NT和Linux出现之后,BIOS的使命有所变化。Windows NT和Linux都将许多通用的硬件控制程序直接纳入操作系统中完成,这样就不必凡事都呼叫BIOS,以提升硬件资源的调用效率,尤其是Linux系统在这方面的功能更为完善。这样一来,BIOS就不再需要负责硬件资源的管理和分配,而只要负责硬件参数的设定和维护。对于DIY发烧友来说,BIOS的最大用处大概是体现在超频调校方面,而主板厂商也迎合这一点对BIOS进行超频功能上的强化;但除了这些用户之外,已经极少有人再利用BIOS来进行硬件的调整工作,许多PC用户甚至压根儿都不知道有BIOS这么一回事。
在这个转换过程中,BIOS逐渐从前端退到了幕后,现在它的主要任务就是在开机阶段对硬件进行侦测、测试、参数设置以及启动操作;而过去的PC硬件都较为简单,BIOS只需参考存储在CMOS中的资料即可完成硬件设置和驱动任务,如果通过BIOS对硬件进行调整,那么新设置的参数也直接写入CMOS中供操作系统所使用。但随着技术的发展,PC的硬件系统变得越来越复杂,参数规格也不断增多,因此虽然操作系统接管了部分BIOS的职能,让BIOS在操作系统载入后被呼叫的概率大大降低,但BIOS现在却要支持更多的硬件,所记录和使用的硬件参数也大幅度增加。早期的BIOS程序代码只有8KB大小,而现在的BIOS容量扩大了数十倍,不得不以压缩的方式存储在CMOS中,在计算机启动后才被载入并解压执行,但即便如此,现在BIOS所占用的空间仍达到“128KB+ 64KB”,相当于早期BIOS的24倍。
在386时代之前,PC的硬件系统相当单一,BIOS都是完全通用的,BIOS安装在任意的主板上都能够正确运行;而进入386时代之后,PC厂商开始采用英特尔、威盛、矽统和扬智等各公司的芯片组,PC硬件朝着多元化方向迈出一步,而BIOS也就必须为不同芯片组的主板定制,硬件厂商开始拥有很大的自主权。进入到Windows 98时代后,BIOS开始遵循APM(Advanced PowerManagement)高级电源管理标准,可以为各个PC部件提供更灵活的电源管理机制─符合该标准的BIOS也被称为APM BIOS。在当时,PC硬件高速发展,对电源供应和管理的能力要求也越来越高,APM单一的功能难以满足未来需要,在英特尔、微软、康柏、凤凰和东芝公司的主导之下,功能更全面的ACPI(Advanced Configuration and Power Interface)标准诞生,ACPI可提供电源供应、电源状态、温度等项目的管理。ACPI 1.0标准于1996年12月推出,微软在Windows Me系统中对其提供全面的支持(Windows 98 SE亦可支持ACPI),BIOS厂商、硬件厂商和作为操作系统设计者的微软公司也都随即跟进,微软在Windows 98即开始ACPI标准,不过全面的支持是在Windows Me推出之后,BIOS和主板厂商也是在那时才作好准备,这样BIOS就从APM体系转入ACPI体系,而它也被称为“ACPI BIOS”。大约在2000年中期,康柏、英特尔、微软、凤凰和东芝为首的29家公司联合宣布将开发ACPI 2.0,新版本主要增强了64位服务器系统的支持,英特尔Itanium平台也被纳入该体系,而Windows XP系统开始对新版ACPI提供支持。到目前为止,ACPI的最新版本是3.0,它于2004年9月份正式推出,今天PC主板中的BIOS几乎都隶属于该体系。
英特尔EFI/UEFI
在ACPI 3.0标准出现之后,BIOS技术也近乎达到它自身能力的极限。由于BIOS都是采用汇编语言编写,要进行性能上的增强难度极大,即便开发人员能够克服语言上的障碍,BIOS也受到自身架构的限制—作为DOS时代的产物,BIOS都只能工作在16位“实模式(Real Mode)”状态下,可管理的最高内存容量仅有1MB,ROM(Read Only Memory)容量则被限制在128KB,这就注定了BIOS很难通过优化改良获得本质性的突破。而与此同时,业界和用户都期待计算机具有更好的可管理性,例如直接通过BIOS进行诸如系统镜像/恢复、查毒杀毒、远程维护等工作,这就要求BIOS大幅度扩充其能力。鉴于传统BIOS缺乏进一步发展的潜力,业界认识到要实现上述目标,开发出替代现行BIOS的技术势在必行。在2000年初,英特尔提出下一代BIOS技术“EFI”的构想,并很快联手其他业者着手EFI的开发,共同参与者包括AMI和台湾的系微(Insyde),在这些厂商的共同努力下,EFI 1.0、1.10标准相继出台,并开始在Itanium服务器系统中获得应用。EFI前瞻性的设计获得业界的广泛认同,2005年9月,英特尔、AMD、American Megatrends、戴尔、惠普、IBM、Insyde、微软和凤凰科技等重量级企业共同成立“UEFI(Unified EFI)论坛”,这家非盈利性的机构将从英特尔手中接过EFI的开发和标准制定权,EFI也因此更名为UEFI。目前,UEFI论坛正为2.0版标准而努力,该版本其实是以EFI 1.10为基础发展而来。
EFI/UEFI的设计架构
与BIOS不同,EFI和UEFI所采用的程序语言是著名的C语言—C语言一直都有“中级语言”之称,相关代码的编制远比汇编来得简单,同时又可以很好地控制硬件,很自然成为UEFI的不二之选。UEFI与现行BIOS另一个根本性不同在于,UEFI采用了模块化的设计,我们可以从图2中看到:位于最底层的是硬件系统,硬件由UEFI的驱动执行环境(Driver Execution Environment)控制—它包含协议架构(Procotol architecture)、平台驱动(Platform driver)、框架驱动(Framework driver)以及兼容支持模块(Compatibility support module)等模块化组件,再往上才是UEFI的核心、OS载入器、各类扩展功能以及兼容支持模块。事实上,UEFI就是一套缩微化的操作系统,它被直接固化于主板上,给用户提供强大的维护和扩展功能,借以提高计算机的可维护性,这一点我们可以从后面的介绍中了解到。
在UEFI系统中,驱动执行环境负责UEFI与硬件的交互,这实际上是通过“协议架构(Architecture procotol)”模块加以实现的。当系统启动时,UEFI通过协议架构将参数传达给相应的硬件,硬件则据此确定自身的工作状态,这一点同现行BIOS并无本质性差异。但与BIOS不同,UEFI的驱动执行环境还包含“平台驱动(Platform driver)”和“框架驱动(Framework driver)”,两者共同建立了UEFI扩展功能运行的基础。另外为了兼容现行的硬件,UEFI还包含一个“兼容支持模块(Compatibility support module)”,它可以在16位实模式下启动计算机,这样,即便PC平台中的部分硬件没有专门为EFI设计(例如显卡、声卡等),EFI的兼容支持模块也可以让它们在整个系统中正常工作,从而有效降低从BIOS到EFI过渡的门槛。
位于UEFI系统顶层的便是“UEFI操作系统装载器(UEFI OS Loader)”和“预启动应用(Pre-boot application)”,前者相当于UEFI的操作系统部分,后者则相当于扩展的应用程序部分,例如杀毒工具、系统镜像工具都属于“预启动应用”的范畴。UEFI系统装载器有两个功能:一是引导Windows之类的操作系统启动,第二就是引导UEFI系统本身,如果用户选择后者,那么将会进入到UEFI的设定界面。UEFI同时支持传统的文本界面和GUI图形界面,文本界面其实只用于兼容模式下,GUI图形界面则是UEFI的标准配备;在文本模式下,UEFI也只能支持640×480 VGA分辨率显示,而在GUI模式下,用户可以自行选择更高的分辨率—UEFI的“平台驱动(Platform driver)”中已包含了显卡的彩色显示驱动支持,用户可以根据显示器情况来使用标准分辨率,从而获得视觉观感更优良的GUI操作界面。不仅如此,UEFI还具有强大的自定义功能,例如开发者可以自行设计漂亮的GUI界面,用户也可以为UEFI系统装载器选择自己喜欢的图片作为背景,这一点显然比BIOS蓝底白字的文本界面来得人性化。
UFEI的引导功能远比现行BIOS来得强大,它整合了OS启动管理器,可直接完成多系统的识别和引导。倘若你是一个Linux用户,便会知道这项功能意义重大,用户不再需要为操作系统重装,启动管理器丢失而烦恼,UEFI自动接管了多系统引导职能,这样的设计颇富人性化。UEFI还提供一个标准化的接口,“预启动应用”便是通过该接口与UEFI的核心挂接,预启动应用可以包括各种各样的扩展工具,例如Ghost系统镜像、磁盘检测、UEFI版本升级、病毒查杀或者其他安全软件都可以整合于其内,这也是各BIOS厂商与主板厂商可以发挥的空间。
为了实现系统维护的扩展职能,UEFI要求具有控制硬件的能力,这个任务同样是由平台驱动完成的。平台驱动包括显卡驱动、芯片组、硬盘、鼠标、键盘等设备的驱动程序,这些程序都是以压缩的二进制文件存在,但功能仅限于为EFI运行提供基础条件,例如实现彩色GUI输出、对硬盘进行读取和写入等等,它们与操作系统的3D加速驱动、硬盘控制器驱动并不是同一个概念。从性能上讲,UEFI的通用驱动显然不能同硬件厂商开发的驱动相提并论,但它足以为UEFI的维护职能提供可靠的保障。由于内建功能的多样化,它的数据体积自然不容小觑,加上扩展功能也需要额外的存储空间,因此UEFI不再被存放在主板上的只读存储器中,而是在硬盘划分出一块FAT32格式的扇区ESP(EFISystem Partition,EFI系统分区),来存放UEFI相关的各类数据。不过这种设计也带来一个隐患:倘若硬盘实体损坏,或者遭遇病毒入侵造成UEFI区域的数据丢失,那么将会造成严重的后果。另外由于UEFI必须与硬盘捆绑,暂时只有在品牌整机中才能实现,DIY平台如何实现UEFI方案暂时还不甚明了。
UEFI 2.0标准的BIOS产品
UEFI包括硬件控制和OS软件两大模块,前者是一套标准化的硬件连接协议,任何版本相同的UEFI,硬件控制部分的内容就完全相同;后者则是提供给厂商用C语言撰写扩展功能的开放接口,这也是厂商可以自主定义的部分。
作为UEFI的发起者,英特尔承担最关键的工作,它撰写了代号为“Tiano”的EFI功能核心框架,其他厂商都是在此基础上挂接各自编写的功能模块。英特尔最初对EFI的推行非常乐观,它计划在2005年时就在企业领域完全实现EFI支持,到2006年则实现桌面、移动和服务器平台的全线迁移。这个计划当然没能成功施行,英特尔后来主导建立了UEFI论坛进行共同推广,从目前的情形来看,UEFI有望在今年中期通过Santa Rosa平台进入到移动领域,并随后朝向桌面领域扩展,预计到2008年,UEFI产品会逐渐成为市场主流。
在4月份召开的英特尔信息技术峰会(Intel Developer Forum,Spring 2007)上,BIOS厂商系微(Insyde)科技展出了名为Insyde H2O的UEFI产品,Insyde H2O遵循UEFI 2.0标准,已经进入到成熟可用的阶段。由于Insyde与英特尔良好的合作关系,以及Insyde在笔记本电脑、嵌入设备和信息家电领域的不凡实力,Insyde H2O很有可能在Santa Rosa迅驰平台中出现,奏响从BIOS转向UEFI的序曲。另外,兆日技术(Sinosun)也在峰会上展出TPM 1.2标准的安全芯片,该款产品可支持UEFI 2.0平台,并在Insyde H2O平台中获得成功验证,两者共同为计算机用户提供可靠的信息安全保障。
微软与凤凰科技的CSS
在英特尔发起EFI的两年后,微软公司也决定发展自己的下一代BIOS技术,并将其命名为“CSS(Core System Software)”。不过,微软开发CSS的目的并不是那么简单,它希望让Windows系统直接具有管理硬件的能力,而不再需要经过BIOS,如果这一计划能获得成功,那么微软的影响力就将渗透到整个硬件平台,其他操作系统则处于非常不利的地位。事实上,早在Windows NT时代,微软就将许多BIOS的工作纳入操作系统的核心,大大减轻了对BIOS的依赖,但是诸如硬盘控制之类的功能,仍然必须经过BIOS。微软创建CSS的目的就在于开发出一种真正可以取代BIOS的软件技术,并将它作为Windows系统的一部分,这样上层的应用程序就可以直接访问并管理各项硬件资源,从而提高系统的性能。微软选择与凤凰科技共同来发展CSS,微软负责提供与操作系统的接口,CSS软件部分的核心工作则是主要由凤凰科技独立完成。
CSS实现硬件与操作系统的高度结合,这项特性让它可以变得更加强大,并提供比传统BIOS更为全面的保护。凤凰科技在CSS架构中建立了符合可信任计算标准的核心代码,实现与新一代Windows平台的对接,同时,CSS还可以直接依靠系统中的防毒软件来抵御病毒的攻击。对用户来说,CSS最大的好处就是让电脑操作变得更加简单,同时也具有更出色的安全性能,并在可维护性方面提供了巨大的便利—如果用户需要对硬件参数进行调整,那么只需要打开Windows的控制面板,在对应的项目中直接调整硬件,并且可以即时地生效而不必重启系统,借助这一功能,DIY用户可以轻松地实现超频运作,压榨计算系统的每一分潜能。微软公司同时计划将数字版权管理系统(DRM)直接纳入CSS体系,这样CSS可以直接对软件的合法性进行检测,微软希望通过这一手段来彻底防范盗版,就技术层面而言,CSS的确可以做到这一点,但这显然不会受到用户的欢迎。即便用户具有对盗版行为深恶痛疾的觉悟,也很难喜欢处于一个高度受控制的软件环境,这意味着使用自由被剥夺。许多反对者则认为,CSS让微软获得过大的权力,就算用户堂而皇之使用盗版软件,也只能由执法部门进行惩处而非微软公司。
不过,CSS的最大问题在于安全隐患。操作系统与CSS的紧密结合强化了对硬件的控制能力和提高效率,但一旦恶意软件取得操作系统的控制权,就可以对系统安全造成更具破坏力的威胁,例如可以更容易监视用户行为,暗中窃取数据,甚至还可以摧毁你的硬件系统,这一点让业界深为惧怕。基于上述理由,CSS并没有获得业界的广泛认可,尽管凤凰科技是目前最大的BIOS供应商,但也没有能力将CSS成功推广,加之UEFI被广泛支持、获得事实上的下一代BIOS地位,CSS的发展归于沉寂,而微软公司与凤凰科技最终也都对UEFI提供支持,在这样的背景下,CSS大概只能成为一种非标准化的特色技术。
来自开源阵营的黑马
在UEFI和CSS之外,新兴的LinuxBIOS被认为是一匹黑马。但事实上,LinuxBIOS的历史更为悠久,早在Linux概念刚刚兴起的1999年,LinuxBIOS计划就开始成立。LinuxBIOS的原理很简单,我们知道,Linux具有直接管理到硬件资源的能力,即便没有BIOS的帮助,Linux系统也能够启动系统并运行,如果利用Linux灵活的可裁剪性设计,开发者完全可以设计出一套功能强大的BIOS,这便是LinuxBIOS项目的发展初衷。
LinuxBIOS起初定位在服务器集群,这主要是因为集群系统所使用的也是传统的BIOS,这类BIOS依赖可靠性低的软盘和硬盘启动,这些BIOS不仅性能低下而且经常出错,更糟糕的是维护工作简直是一场噩梦—假设一个集群系统拥有128个节点,那么维护人员就必须借助128个键盘和显示器来逐一更改BIOS,这样的工作简直可怕之极。有鉴于此,Los Alamos国家实验室高级计算实验室的Ron Minnich在1999年创建了LinuxBIOS项目,而名为James Hendricks和Dale Webster的两个大学本科生,都花费了整个寒假来整理LinuxBIOS的设计可行性。在这之后,LinuxBIOS项目正式启动,英特尔、Acer、SiS、VIA等厂商在开始时都表示大力支持,并纷纷提供硬件赞助LinuxBIOS的研究发展,它们希望能获得免费的BIOS资源,从而在传统BIOS之外获得新的选择。但Linux的发展进程相当缓慢,加上铁板一块的GNU许可限制,许多厂商在热衷一段时间后顿感失望,并逐渐淡出该计划,英特尔公司后来独立发起EFI计划,同时也对LinuxBIOS表示反对态度。然而,在硬件厂商纷纷放弃LinuxBIOS的时候,互联网巨头Google却开始大力支持LinuxBIOS,Google给LinuxBIOS项目相当的资金赞助,并协助LinuxBIOS建立了一个针对硬件品质保证和自动化测试的研究环境,这在很大程度上促进了LinuxBIOS的发展。经过多年的发展之后,LinuxBIOS逐渐走入成熟,它的第一个成功应用就是进入OLPC(One Laptop per Child)领域,成为OLPC平台的BIOS,这在某种程度上鼓舞了开发者和用户的信心。而首个支持LinuxBIOS的主板厂商便是技嘉科技,技嘉最近推出一款型号为M57SLI-S4的AMD AM2平台主板,所采用的就是LinuxBIOS,成为板卡产品中的另类,这也充分说明LinuxBIOS已经可以进入实用阶段。
LinuxBIOS基本上可以看作一个超精简的Linux系统,它只是在Linux内核基础上增加了针对系统硬件侦测与激活的程序代码,在内核启动之后随即完成硬件的检测与激活操作,然后将控制权交给PC中的主操作系统。尽管目前接受度仍相当稀少,但LinuxBIOS的优点不可忽视:首先,LinuxBIOS也是采用C语言编写,可维护性与程序更新都远比汇编语言编制的传统BIOS来得简单—在板卡产品更新频率的今天,LinuxBIOS能够帮助硬件厂商快速完成转换,从而更快地将新品推向市场;另外,一旦硬件产品完成功能定型,LinuxBIOS的后续维护工作也更为简易,这对于硬件厂商具有莫大的吸引力。其次,LinuxBIOS性能出色,以X86版本的LinuxBIOS为例,只需要执行区区16个指令它就能切换到32位模式下,在此模式下LinuxBIOS的效能相当出众,只需要3秒钟时间就能够完成所有的硬件检测并开始引导主操作系统。第三,LinuxBIOS完全不包含DRM保护机制,用户的隐私权和自由度获得最大的保障,同时骇客也更加难于入侵;而对注重安全性的政府机构、军事单位等用户来说,遵循GNU(General Public License)通用公共许可的LinuxBIOS高度透明,用户彻底掌握了LinuxBIOS的程序代码,由此确保计算机不受暗中的控制。除此之外,LinuxBIOS在嵌入领域有相当高的价值,LinuxBIOS一般仅占用数十KB的空间,可以直接纳入主板的2M/4Mbits闪存内,如果硬件厂商在LinuxBIOS基础上添加网络功能、存储功能、Web服务等功能,那么它可以直接作为简单的服务器使用,例如可以作为家用NAS、无线路由器等,应用领域颇为广阔。与UEFI类似,LinuxBIOS具有很高的扩展性,硬件厂商可以在此基础上增加病毒防护、系统镜像、远程维护接口等功能模块,从而获得媲美UEFI的强大功能。
尽管有如此之多的优点,硬件厂商对LinuxBIOS更多是持抵触态度,这主要是由于LinuxBIOS的GNU协议要求任何开发者都必须公开它们的代码,如果厂商的所有产品都采用LinuxBIOS,那就意味着自己的关键技术可以轻易为竞争对手获取,这道障碍成为LinuxBIOS推广的最大壁垒。因此,尽管LinuxBIOS立意高远,锁定高端的服务器集群,但并没有太多的服务器厂商热衷,反而是在一些注重低成本的中低端领域,LinuxBIOS迎来了不错的契机,如OLPC和技嘉M57SLI-S4主板都已经成为LinuxBIOS的成功案例,预计未来LinuxBIOS在这些领域的发展空间依然广阔,但能否在高端市场占据一席之地还有待观察。
前瞻
UEFI、CSS、LinuxBIOS共同撑起新一代BIOS的天空,在这三者之中,CSS因其浓重的专属性色彩而得不到支持,在未来也很难获得推广,而作为主导者的微软公司与凤凰科技也都将重点转移到对英特尔UEFI的支持。UEFI显然将成为新一代BIOS的标准,从接下来的2007年中期开始,我们将看到UEFI开始广泛推行。事实上苹果公司已经先行一步,其X86 Mac机型从去年开始便引入UEFI,目前全系列的Mac计算机都基于UEFI平台。LinuxBIOS更多扮演黑马角色,低成本、高性能以及卓越的灵活性让它在新兴的市场占有一席之地,得益于活力四射的开源阵营的助力,LinuxBIOS在未来将会占有越来越重要的地位。但不管局势朝着哪一个方向发展,计算机都将从新一代BIOS中明显受益—这并非是说新一代BIOS可以直接提高计算机的性能,而在于可靠性与可维护性将获得质的飞跃。
现行的ACPI BIOS体系
ACPI成为业界标准之后迅速占据统治地位,它的出现让计算机系统更为灵活和人性化,简单点说,ACPI是实现OSPM(Operating System-directed Power Management,操作系统直接电源管理)功能的关键部分,该标准赋予BIOS、操作系统和周边硬件可以互相交换电源使用状态的相关信息,这些信息包括供电的开、关、是否处于节电模式等等,BIOS和操作系统都支持ACPI规范之后,操作系统便能够通过BIOS来调节硬件的电源供应,如果硬件本身具有节电运行能力,那么操作系统便能够直接控制硬件的电源供应,ACPI BIOS则在同时调整硬件的工作状态,这套机制最典型的应用便是英特尔处理器的SpeedStep节能技术。另外在使用PnP设备时,ACPI标准也可以在设备插入系统时自动侦测并管理它的电源供应。
除了系统电源管理外,ACPI还定义了周边电源/效能管理、处理器电源/效能管理、即插即用与系统组态管理、系统/部件温度监控、电池管理、总线控制器管理以及各类嵌入控制器的管理,基本上涉及了PC硬件的方方面面。因此ACPI BIOS可提供非常强大的电源/功耗管理能力,今天PC内的CPU、GPU、芯片组、内存、总线等各个子系统大都处于ACPI的监控之下,并朝着每瓦性能的最佳化方向努力。
与Windows系统不同,Linux系统具有全面的硬件管理职能,BIOS只是在开机启动阶段才发挥作用,但看到ACPI架构所带来的诸多方便性,Linux随后也提供对ACPI的支持,这种做法被实践证明是非常明智的,毕竟此举有效提升了Linux系统的兼容性,同时也减少系统开发的难度,唯一的不足在于令Linux核心变得没那么精简。