BIOS与UEFI区别

发布于 2018-09-01  2.23k 次阅读


前言

可能有些人知道BIOS这个东西,但是他分两种BIOS,Legacy和UEFI,虽然经常接触电脑多的人都知道这是什么,但毕竟为了照顾小白,还是写了这篇图文。

BIOS

BIOS是一组固化到计算机主板上的一个ROM芯片上的程序,保存着计算机最重要的基本输入输出的程序,开机后自检程序和系统自启动程序,可从CMOS中读写系统设置的具体信息,主要功能就是给计算机提供最底层的,直接的硬件设置和控制,目前被称为Legacy BIOS(传统BIOS) 升级BIOS的好处: 获得新特征,修复旧版本BIOS的bug

EFI

可扩展固件接口 Extensible Firmware Interface是intel为PC固件的体系结构,接口和服务提出的建议标准,其主要目的是为了提供一组在操作系统加载之前(启动前)在所有品台上一致正确制定的启动服务,被看做是有近20年多年历史的BIOS继承者。 为了推广EFI,intel联合业界多家著名公司共同成立了一个统一可扩展固件接口论坛(UEFI forum)

UEFI

统一的可扩展固件接口 Unified Extensible Firmware Interface是由EFI1.0为基础发展起来的,其所有者已不再是Intel,而是UEFI forum。目前也被称为UEFI BIOS

Legacy BIOS与UEFI的区别

Legacy BIOS仅运行16位运行方式(实模式)下,以16位汇编代码,寄存器参数调用方式,静态链接,以及1MB一下内存固定编址的形式存在 UEFI BIOS运行与32位或64位模式,乃至未来增强的处理器模式下,用模块化,C语言风格的参数堆栈传递方式,突破了16位代码的寻址能力,达到了处理器最大寻址。

POST

POST的意思Power-On Self Test,顾名思义这是在加电的时候执行自检。但其实他做的并不仅仅是Test,这只是他最初的目的,是他历史遗留的名称。自从有了Plug and Play(即插即用)之后,他最主要的目的是对所有设备进行基本的初始化,执行他们各自的init流程,为他们分配IRQ,内存映射之类的资源。

BIOS自检的具体流程

  1. 初始化系统硬件
  2. 初始化能源管理
  3. 检测内存,显示内存容量
  4. 激活键盘
  5. 测试串行,并行通信
  6. 初始化光驱和硬盘控制器
  7. 寻找启动设备

主板BIOS自检过程中,一旦发生错误, 如果此时显示器能显示则显示错误信息, 否则将使用机箱喇叭鸣笛报警。

如果硬件没有发生变化,这些配置信息并不需要每次都重新分配,因为反正分配的结果大概会是完全一样的。但在BIOS的年代是没有办法存储这些信息的。(应该说,没有脸颊通用的可靠方法来存储),所以BIOS只好每次启动都执行一遍POST。也就是说,只要BIOS能存储这些信息,就可以不用每次都执行分配流程了。直接读取上次用的信息,直到跑出问题再POST即可。UEFI就提供了这样的框架,使得这些信息的存储成为可能,自然也就可以不用每次去执行POST。UEFI弱化了自检的概念,但强化了自检的功能。UEFI中已经不存在独立而固定的自检流程,但自检的功能仍然存在,但取消自检流程确实缩短了启动时间。

BIOS与UEFI区别

BIOS与UEFI区别

UEFI整体上主要由初始化模块,驱动执行环境及驱动程序,兼容性支持模块,UEFI应用和GUID磁盘分区组成,而初始化模块和驱动执行是UEFI的运行基础,通常被整合在主板的闪存芯片中。 开机时初始化模块也将会首先执行并负责CPU,主板芯片及存储设备的初始化工作,完成后则载入驱动执行环境,即Drive Execution Environment,简称DXE。在DEX的支持下,PC在添加新的硬件时,只要有对应的UEFI驱动,那么UEFI也可以轻松提供支持:在这一点上则完全碾压几乎没有扩展能力的传统BIOS。借助这项技能,UEFI可以轻松支持各种网络设备并联网,这也是为什么现在无需进入系统就能在线升级UEFI功能的原因 (华硕的某些主板能够支持联网升级UEFI BIOS)

CSM

兼容型支持模块 Conpatibility Support Module 是UEFI BIOS中的Boot选项里的一个子项,CSM开启后UEFI BIOS可以同时支持UEFI BIOS启动和Legacy BIOS启动。若需要启动传统MBR磁盘设备,则必须开启CSM,关闭CSM则表示纯UEFI磁盘启动

Secure Boot 安全启动

安全启动仅适用于使用纯UEFI BIOS启动后的操作系统。 在自带Win 8系统的电脑上,安全启动默认打开,CSM默认关闭,这也导致了电脑不能启动不完全支持UEFI BIOS的磁盘设备:要使得电脑能启动不完全支持UEFI BIOS的磁盘设备,就必须关闭Secure Boot并打开CSM

Secure Boot的目的,为了防止恶意软件侵入,他的做法就是采用密钥,UEFI规定,主板出厂的时候,可以内置一些可靠的公钥。然后任何想要在这块主板上加载的操作系统或者硬件驱动程序,都必须通过这些公钥的认证,也就是说这些软件必须用对应的私钥签署过,否则主板拒绝加载。由于恶意软件不可能通过认证,因此就没有办法感染Boot

这个设想是好的。但是UEFI没规定那些那些公钥是可靠的,也没规定谁负责颁发这些公钥,都留给硬件厂商自己决定。

微软要求,主板厂商内置Win 8/10的公钥。Secure Boot的用意本是保证系统安全,但现在似乎成了厂商保护市场垄断,阻碍竞争一种手段

32位和64位UEFI BIOS的区别

  • 32位UEFI固件只能启动32位支持由UEFI引导的操作系统(32位Win 7不支持EFI引导)
  • 64位UEFI固件只能启动64位支持由UEFI引导的操作系统(64位Win 7支持EFI引导)

由于历史因素,OEM政策,某些低内存品牌机和平板采用了不带CSM(无法兼容Legacy BIOS)的纯32位UEFI(不兼容64位)固件,因此这些设备无法安装任何64位UEFI BIOS引导的Windows操作系统,也无法安装Legacy BIOS引导的32位或64位Windows操作系统:只能由32位UEFI BIOS引导在GPT格式磁盘上安装32位的Win8或者32位的Win 10。

64位Win7不完全支持UEFI,若想在保留预装UEFI BIOS引导的Win8系统的电脑上降级安装Win 7,就不能将BIOS设置为“纯UEFI”,也就是必须开启,并且必须禁用Secure Boot。

GOP与VBIOS的区别

VBIOS是显卡或集成图形控制器的BIOS,类似系统BIOS提供了一组软件所使用的程序函数来访问系统硬件一样,VBIOS也是提供了一组视频相关的程序使用的函数访问视频硬件。通常由显卡厂商提供一个二进制Bin文件给原始设计厂商,将其包在系统BIOS中。而GOP(Graphic Output Protocol)Drive是UEFI架构下取代传统VBIOS黑箱的UEFI Driver,他被设计成系统启动之前支持基本需求的图形显示功能。 UEFI是通过标准的GOP Protocol来实现显示输出。而Legacy VBIOS需要通过INT10中断来实现。

BIOS与UEFI区别

转载于酷安@HHJLKK,略有修改


用心创造未来