一:什么是UEFI

The Unified Extensible Firmware Interface (UEFI) Specification, previously known as the Extensible Firmware Interface (EFI) Specification, defines an interface between an operating system and platform firmware. The interface consists of data tables that contain platform-related information, boot service calls, and runtime service calls that are available to the operating system and its loader. These provide a standard environment for booting an operating system and running pre-boot applications.

1:自己的理解,为什么有uefi?

uefi和legacy是BIOS不同的启动模式。legacy可以理解为旧模式,uefi为新模式。在旧模式下,主机上各个硬件的交互,硬件与软件的交互没有统一的标准。导致很多问题难以解决,典型的就是电源管理,设备配置界面。在这种历史背景下Intel联合微软,惠普等巨头制定了UEFI,统一可扩展固件接口。

借鉴了软件编程的理念,协议化,接口化,可扩展化。UEFI本身是一个协议,如下图所示,有很多protocol支持完成各种功能,protocol就是完成各种功能的函数指针集合,如加载image。现在uefi通常代指新的启动模式。

uefi模式带来的变化:

1):接口协议化,让PCIE的uefi driver容易编写,提供HII接口,可以直接在BIOS setup界面配置cpu,设备参数。

2):支持GPT设备,解除了磁盘2T的限制。

3):增加了很多安全功能。参考下文

4):支持更多的启动设备。

2:启动流程

UEFI启动流程如下,每个阶段名称缩写参考图片:

1):SEC是security,执行硬件相关的安全认证

2):PEI,包括CPU,内存,chipset初始化等。最初内存没有ready,程序运行在cache中。

3):DXE,会把uefi驱动全部注册,然后把设备全部注册,使用connect_all函数双循环去匹配设备和驱动,最后bind在一起。

4):BDS,将能启动的设备生成启动项,供用户选择。包括磁盘,USB,网络,cd等等。

5):BIOS下选择了一个系统启动项,实际进入了UEFI的APP中,Linux一般是grub。它的作用是将磁盘中的kernel加载到内存,然后跳转kernel的入口函数。grub还会把内核参数传递到制定位置,kernel启动后还会再用。

BIOS到OS的过程:

1):UEFI负责初始化硬件设备,包括CPU,MEM,外接设备的初始化,资源分配等。

2):UEFI转到OS时,内存已经包括很多有用信息。包括mem table(e820),ACPI table,SMBIOS table等等。OS会拿到信息进行内存构建,设备再次初始化等等。

简而言之:BIOS负责初始化好硬件设备,让它处于ready状态,OS负责管理资源,向用户态程序提供服务。最后应用程序使用服务,向普通的user提供服务。

二:安全性

1:UEFI secure Boot

UEFI支持安全启动模式。

2:UEFI支持设备固件签名

支持用户在SETUP配置界面查看外接设备的校验信息。

3:UEFI支持安全开发包,开发者可以直接使用,增强安全。

4:SMM角度保护系统:

5:Network Boot in a Zero-Trust Environment with UEFI

三:OS兼容列表

1:centos

This page describes the current status of UEFI support in CentOS and what is being done to fix the remaining issues.

Current status for x86_64 install media

media VirtualBox VMWare Real iron
CentOS 6.5 DVD OK OK OK1
CentOS 6.5 minimal OK to be verified OK2
CentOS 6.5 netinstall gets stuck in UEFI shell not working TBD
CentOS 6.5 LiveCD gets stuck in GRUB to be verified TBD
CentOS 6.5 LiveDVD gets stuck in GRUB to be verified TBD
CentOS 7 (any media) OK OK OK

centos6.5以上应该都支持UEFI模式。

RHEL 7 Beta and RC can be booted with Secure Boot enabled.

2:redhat

BIOS和UEFI的区别相关推荐

  1. BIOS和UEFI的区别,系统安装引导以及MBR和GPT磁盘分区

    前言 安装系统是计算机专业的日经操作,然而就算你是身经百战,也可能会遇到各种各样棘手的问题,对系统的启动流程也是似懂非懂(俺也一样),每次碰到问题都会花去大量的时间去查询解决方案,最后很多时候都免不了 ...

  2. BIOS 与 UEFI的区别

    BIOS 与 UEFI BIOS(Basic Input Output System,基本输入输出系统)诞生于1975年的CP/M计算机.起初,他作为一款先进的固件程序,在计算机系统中扮演着相当重要的 ...

  3. BIOS和UEFI区别,以及Boot Loader【上】

    BIOS和UEFI定义和区别 1.BIOS就是BIOS,UEFI就是UFEI.但因为传统习惯的力量,有时候传统BIOS或者UEFI BIOS都会被简称为BIOS. 2.PC的启动固件的引导流程从IBM ...

  4. 计算机硬件 系统安装维护教程 02安装基础篇-01:启动热键、BIOS与UEFI

    文章目录 启动热键 BIOS与UEFI 启动热键 实际上来讲他可能不叫这名,但是大家都这么叫,而且我也确实不知道还有什么更合适的,如果有,我会在以后更新此文档. 首先,我们要先知道什么是启动热键,他是 ...

  5. windows下使用GRUB2 制作支持BIOS和UEFI的WINPE、LINUX、MAXDOS多引导U盘

    前言: 因为对这块完全不了解,走了很多弯路.试了很多软件,包括GRUB4DOS.XORBOOT.syslinux等.这些软件各有特色,我也没能深入的了解,最终选择使用grub2也是因为感觉对BIOS和 ...

  6. BIOS、UEFI、Boot Loader都是些什么

    BIOS.UEFI.Boot Loader都是些什么 文章目录 BIOS.UEFI.Boot Loader都是些什么 什么是BIOS 基本的输入输出是什么 自检程序"检"了什么 系 ...

  7. 通过计算机的启动过程了解BIOS和UEFI

    本文属于学习笔记,如有侵权,请联系博主删除,如有错误之处也请多多指正,谢谢! 一.基本概念解释 说到计算机启动,绕不开的两个东西叫做BIOS和UEFI,BIOS 和 UEFI 都是计算机的固件类型.B ...

  8. legacy bios与uefi两种模式安装windows8操作系统的方法

    在Legacy BIOS与UEFI 两种模式安装Windows 8操作系统的方法 作者:佚名 字体:[增加 减小] 来源:互联网 时间:01-10 16:18:23 我要评论 不是所有WIN8都可以安 ...

  9. 【我所认知的BIOS】— uEFI AHCI Driver(8) — Pci.Read()

    [我所认知的BIOS]-> uEFI AHCI Driver(8) - Pci.Read() LightSeed 6/19/2014 社会一直在变.不晓得是不是社会变的太苦开,而我没变所以我反而 ...

  10. 联想计算机BIOS开启Intel-vx,如何在计算机BIOS或UEFI固件中启用Intel VT-x | MOS86

    现代CPU包括硬件虚拟化功能,可帮助加速在VirtualBox,VMware,Hyper-V和其他应用程序中创建的虚拟机.但是这些功能都是 虚拟机是美好的事情.使用虚拟化应用程序,您可以在当前系统的窗 ...

最新文章

  1. Linux之 xstart调用 x11vnc远程图形化桌面
  2. 以下关于python的赋值_单选(1分) 以下关于Python的赋值说法中错误的是哪一个选项?...
  3. dll已加载但找不到入口点DLLRegisterServer
  4. POJ_1253胜利的大逃亡
  5. koa --- 使用中间件多层级抛出错误
  6. 如何利用.NETCore向Azure EventHubs准实时批量发送数据?
  7. 链接(了解)---Linux
  8. java 字符流 utf8,JAVA基础(字符流设置编码读写字符)
  9. SwarmKit知多少——来自源码世界的深入解读
  10. Unreal Engine 4 中的 UI 优化技巧
  11. 函数fun的功能是将s所指字符串_21 函数的简介
  12. autobank渗流分析计算教程_仿真百科 | 多孔介质渗流现象
  13. 目标检测之Mtcnn网络详解(人脸检测)
  14. LLVM每日谈之三 如何创建一个LLVM工程
  15. 拓端tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法
  16. appnode报错_appnode
  17. 计算机手机共享上网,上网教程_电脑wifi怎么实现手机共享上网 - 驱动管家
  18. bmp格式如何转换成jpg?
  19. 云计算基础与应用 第七章 CDN
  20. 期货反向跟单犯法吗?

热门文章

  1. python dataframe isin,使用多个条件获取新的数据帧pd.Dataframe.isin()
  2. mysql报错解决方式:1449 - The user specified as a definer (‘root‘@‘%‘) does not exist
  3. 2021-05-29 DOM元素的属性和操作:节点非内置属性,节点增删改查,cssDOM设置行内样式与非行内样式等
  4. 玩转字符串篇--代码自动生成,解放双手,android音视频开发
  5. 蔡高厅高等数学28-高阶导数
  6. 面试准备:计算机网络常见面试题
  7. matlab解决力学问题程序,力学专业程序实践:用MATLAB解决力学问题的方法与实例...
  8. php怎么获得今天的日期,PHP怎么获取今天、昨天、明天的日期-php教程
  9. java高德地图算距离_根据高德地图得出的坐标算出两点之间的距离 java
  10. 听说唯一性索引搜索快?