UEFI 学习笔记

近日在安装 win8+linux(ubuntu)双系统时,遇到了一个新词汇–UEFI 学习整理如下。

UEFI全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface), 是一种详细描述全新类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上,从而使开机程序化繁为简,节省时间。

作为电脑开机固件的Legacy Bios如今已有25年历史,因为硬件发展迅速,传统式(Legacy)BIOS 成为进步的包袱 ,致使EFI的出现。
可扩展固件接口(Extensible Firmware Interface,EFI)是 Intel 为全新类型的 PC 固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在 OS 加载之前(启动前)在所有平台上一致的、正确指定的启动服务,被看做是有近20多年历史的PC BIOS的继任者。
UEFI是由EFI1.10为基础发展起来的,它的所有者已不再是Intel,而是一个称作Unified EFI Form的国际组织,属于open source,目前版本为2.3.1。

UEFI的主要贡献者有以下11家公司

  • AMD
  • American Megatrends Inc.
  • Apple Inc.
  • Dell
  • Hewlett Packard
  • IBM
  • Insyde
  • Intel
  • Lenovo
  • Microsoft
  • Phoenix Technologies


BIOS与UEFI的不同

与legacy BIOS 相比,最大的几个区别在于:

  • 1. Legacy Bios 是通过汇编来编译的,然而在最新替代品UEFI环境下是同主要通过C语言来编译的(99%的C语言,以及1%的汇编),从而实现标准化,模组化,其将在2011进驻所有新型电脑。UEFI的全称为统一可扩展固件接口(Unified Extensible Firmware Interface)是比Legacy Bios,甚至EFI(Extensible Firmware Interface)更具优势的新技术产品。
  • 2. 一改之前的中断、硬件端口操作的方法,而采用了Driver/protocol的新方式;
  • 3. 将不支持X86实模式,而直接采用Flat mode(也就是不能用DOS了,现在有些 EFI 或 UEFI 能用是因为做了兼容,但实际上这部分不属于UEFI的定义了);
  • 4. 输出也不再是单纯的二进制code,改为Removable Binary Drivers;
  • 5. OS启动不再是调用Int19,而是直接利用protocol/device Path;
  • 6. 对于第三方的开发,前者基本上做不到,除非参与BIOS的设计,但是还要受到ROM的大小限制,而后者就便利多了。
  • 7.弥补BIOS对新硬件的支持不足的毛病。

UEFI的性能

UEFI的最大特点,采用模块化设计的UEFI BIOS,基本上区分成硬件控制和OS软件两大模块,前者只要是相同版本的UEFI BIOS,就会有相同的功能,后者则是给厂商用C语言撰写应用功能的开放接口。通过这个开放接口,厂商就可以自行编写出各种功能的插件(Plug-in),像是类似Ghost的系统备份/还原插件、类似IE的浏览器插件、类似Anti-Virus的防病毒插件等功能来增加自家产品的功能特色。从前面的内容来看,UEFI BIOS完全不同于传统BIOS的样貌,几乎就是一个专用的微型操作系统。而随着UEFI BIOS内建功能的多样化,它的数据体积自然是不容小视,再加上扩展性的需要,UEFI BIOS将不再是存放在主板上的只读存储器中,而是在硬盘划分出一块FAT 32格式的扇区(ESP;UEFI BIOS System Partition),来存放UEFI BIOS的相关数据。  可以说,UEFI系统的固件就相当于一个简单的操作系统,在开机程序完成后,使用者可选择执行UEFI Shell当做命令接口,或指定任一其它操作系统。这种情形就有点像早期的DOS一样,Windows只是另一个使用者接口系统。包括AMI和Insyde,现在的UEFI BIOS都是以Intel所撰写的UEFI功能核心Framework(开发代号为Tiano)为基础,再加挂其编写的架构模块。甚至于微软的下一代操作系统Longhorn,也在IDF中宣布支持UEFI,按照微软的计划,未来所有新的操作系统都将支持UEFI。在模块化分工的概念下,加入一个新的中介接口的确能将系统变动带来的其它改变减至最少。  因为UEFI的这种架构特性,所以很多人认为在UEFI成为电脑固件后,对BIOS厂商和微软都是威胁—-BIOS业者将不再有绝对的主控地位,而用户在开机后执行系统的选择性增加,就不见得一定得依赖微软的Windows了。不过,UEFI BIOS也象CSS一样存在不少缺点。比如真正的UEFI是在硬盘中隔离出一个区域来作为存储空间的,如果硬盘这一小块空间出现物理损坏,后果怎样?由于UEFI更像是种软件,所以对病毒、外部程序侵入的防御能力就比传统的BIOS削弱了不少。再说,现在会用C语言来编程的人不少,可能很多人都可以很容易破译UEFI,这对UEFI的安全性提出了更高的要求。

UEFI联盟介绍  

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

  • 规范工作组:负责uEFI的规范制定和改进  
  • 平台初始化工作组:负责平台初始化框架规范的制定和改进  
  • 测试工作组:负责开发uEFI测试套件  
  • 行业联络工作组:负责业界业务联络

开机速度
WIN8的开机速度较WIN7快,其中一个原因在于其支持UEFI BIOS的引导。对比采用传统BIOS引导启动方式,UEFI BIOS减少了BIOS自检的步骤,节省了大量的时间,从而加快平台的启动。

传统的BIOS运行流程

  • 开机–>BIOS初始化–>BIOS自检–>引导操作系统–>进入系统

UEFI运行流程

  • 开机–>UEFI初始化–>引导操作系统–>进入系统

UEFI的发展

目前许多电脑厂商已经开始使用UEFI,并预计UEFI机型的销售从2011年开始将占主导地位,据微软最新的报告称,将在2013年左右,在安装了 SSD硬盘的电脑中,启动时间不得大于2S,在安装了2.5 寸的HDD中,启动时间不得大于4S,否则厂商不能拿到微软WIN8的LOGO。UEFI在几年内必将成为BIOS的取代品,而pc开机速度也会因为UEFI的出现而大大缩短。

2 comments

  1. 振兴 Reply
    February 21, 2013 at 4:32 pm

    经常看到UEFI,表示今天才知道它的意思……

    • administrator Reply
      February 23, 2013 at 8:59 am

      虽然整理了一下,还是不太清楚…..

Leave A Comment

Please be polite. We appreciate that. Your email address will not be published and required fields are marked