从Uefi的历史开始------BIOS和Uefi

Legacy BIOS’ background

Legacy BIOS的定义:BIOS的主要作用就是设置硬件,加载启动操作系统。当计算机启动的时候,BIOS初始化并辨认系统设备,包括video display card, keyboard, mouse, hard disk drive和其他硬件。然后,BIOS会找到启动设备上保留的软件,把设备的控制交给计算机(booting or boot strapping)。

Legacy BIOS可以引导不同的操作系统,它定义了一套与操作系统无关的硬件接口,通过BIOS ROM loader和 Bootstrap loader去使能中断和video, disk, keyboard服务进行通信。

Unified Extensible Firmare interface’s(UEFI) background

Uefi是用来代替Legacy BIOS的服务。除此之外,uefi还提供了其他的一些高级功能,具有网络功能,支持多核系统

uefi在启动流程中的角色

在这里插入图片描述
hardware: 分两类,一指的就是主板上的物理组件;二指一些IO设备

BIOS: 是具备底层硬件所有知识的固件层,一般以处理器体系架构中的Reset Vector的形式保存在ROM中。在该层中,主要确定了两点,一是硬件(主板)是如何工作的;二是硬件(主板)上有多少组件。BIOS配置了硬件之后,加载和启动OS

UEFI: 这一层主要是为其他软件或者固件建立服务的。该接口层提供了到硬件层的基本通信,以便其他组件进行通信以初始化和启动系统中的各种设备层

OS Loader: 作为UFEI应用,会把被选择的操作系统加载到内存中,发送exitbootservice事件。该应用会调用UEFI接口层提供的协议和服务,所以是不依赖底层硬件的

Similarities and differences of Legacy BIOS and UEFI

相同点

  1. 完成相同的任务:作为系统固件,可选的ROM以及操作系统之间的公共接口
  2. 相同的大小和性能压力:
  3. 操作系统无关性: 可以与多种操作系统一起工作

不同点

  1. ACPI and SMBIOS:

UEFI的发展历史

在这里插入图片描述

the Framework’s background

Framework(the intel Platform innovation framework): 是intel依照UEFI规范实现的一套框架

Platform Initialization’s background

现在Framework被UEFI Platform Initialization(PI)规范取代了

UEFI Platform Initialization(PI)规范与Framework规范的不同点

  1. UEFI限于用于操作系统和系统固件之间交互的编程接口
  2. PI规范是一种固件实现,旨在执行初始化平台所需的全部操作,从上电到包控制权移交给操作系统

UEFI Platform Initialization(PI)规范的介绍

UEFI Platform Initialization(PI)规范定义:

  1. PI规范定义了系统如何从开机进入UEFI可行的状态
  2. PI还定义了未包含在UEFI规范中的操作系统所需的其他特定于硬件平台的元素
  3. UEFI与操作系统对话时,UEFI不处理内存初始化,恢复或平台初始化,这是Platform firmware的角色。
  4. PI规范适用于基础架构,接收用户构建的组件,然后定义它们如何正确交互去实现boot process

PI在boot process中的角色

Booting的过程并不是线性的,下图是一个简单的例子。在这个图中顺序是从下到上工作的。
在这里插入图片描述

  1. PI为引导过程定义了不同的阶段。 PI为在该阶段运行的模块定义服务和约束
  2. 每个阶段都建立在前一个阶段之上,直到系统为操作系统做好准备为止
  3. UEFI接管以支持Option ROM和OS

启动服务做的事情

在这里插入图片描述

Power on

Platform initialization phase

PEI Foundation包括SEC和PEI两个阶段

1. SEC(security):

这是平台重置或上电后的第一阶段,以确保固件完整性完好。SEC阶段的代码是依赖于平台和处理器的架构的。SEC阶段需要做的事情

- Restart: SEC负责处理所有平台重启事件
- Temporary Memory Store: SEC负责创建一个暂时的内存存储
- Root of Trust: SEC是系统信任的基础,并包含控制系统的初始代码。 该代码可以选择对PEI Foundation进行身份验证
- Passing: SEC负责将控制权交给PEI Foundation
2. PEI(Pre EFI Initialization):

PEI阶段的主要目的是进行必要的处理器,芯片组和平台配置,以初始化内存。PEI阶段是为下一阶段建立基础环境,使得DXE阶段可能运行在C环境中。

Reset: PEI使用重置,INIT和机器检查体系结构(MCA)。 在ltanium上,重置进入调用固件的处理器抽象层。 入口点涉及一个INIT,它会重置处理器

Start-up: PEI阶段是一个很小的紧凑启动代码,因为它代替ROM执行。 工具允许模块化驱动程序位于绝对地址。 地址是直接执行的,因为它们是通过使用构建工具来解析的

Support: PEI在即将推出的intel架构处理器中利用了新的架构支持,使您可以更接近C进行重置。由于C需要堆栈,因此需要可用的临时内存

Modules: 核心定位,验证,调度和执行PEI模块(PEIM)-在PEI中运行并支持芯片组或平台功能的固件代码的模块化块

Publish: PEI通过PEIM-to-PEIM接口发布自己的协议和调用虚拟接口。

Goals: PEI的主要目标是发现启动模式。 启动初始化主存储器的模块; 发现并启动DXE核心; 并将平台信息传达到DXE

在进入下一阶段时,PEI代码就消失了。为了传递PEI设置好的一些配置,使用了HOB(hand-off blocks)机制。传递到下一阶段的唯一内容是描述在PEI阶段完成的初始化的HOB列表

为什么要使用PEI

  • 在没有内存的情况下编写代码具有挑战性

  • 此外,旧版代码被手动编码为不同的寄存器规则,许多BIOS供应商使用不同的IA32寄存器来保存相关信息。 例如,一个BIOS供应商可能使用EBP进行存储,而另一个可能使用EBX,这使得在该环境中移植代码非常困难。

  • 使用PEI的另一个原因是,您希望拥有最快的内存初始化和基本芯片组初始化路径。 同样,PEI阶段在S3,从睡眠恢复和恢复阶段中也起着主要作用。

PEI Outline

功能:

  • 发现并初始化一些RAM,这些RAM之后不会被重新映射了

  • 描述包含DXE Core和Architecture Protocols的firmware volumes的位置

  • 描述仅PEI知道的其他固定的,特定于平台的资源

PEI’s initial memory

PEI Core的最低要求是少量的临时内存。 数量取决于处理器和芯片组。 对于IA32示例实现,您只需要8K。

Memory map

在这里插入图片描述

BFV(Boot Firmware Volume): 是保存PEI代码的地方,也被称为"recovery block"

FV(Firmware Volume): 固件卷是组织到文件系统中的固件数据和/或代码的逻辑存储库。 每个固件卷均具有PI规范第3卷:共享架构元素中定义的属性。

T-RAM: PEI使用的暂时的内存,系统内存初始化之前堆栈和数据区域的位置

3. DXE(Driver Execution Environment):

DXE阶段是启动过程的主要部分,包括枚举和初始化设备;支持UEFI服务;实现协议和驱动程序。在这个阶段也生成了EFI接口的表

4. BDS(Boot Dev Select):

BDS阶段负责确定启动操作系统的方式和位置

OS boot phase

5. TSL(Transient System Load):

TSL是构建操作系统的过程。 这是UEFI将控制权转移到OS本身的阶段

6. RT(Run Time):

RT在引导阶段之外执行;操作系统以其正常操作模式运行

Extensible Firmware Interface Developer Kit(EDK)

EDK是第一代开源的EFI开发工具。仅仅支持Windows的开发

EDK为intel之外的用户(与intel没有直接的许可协议)提供了更强大的开发环境。

EDK针对开发固件和驱动程序的公司

EDK最终升级为EDK II,从而扩展了构建环境,以支持多个操作系统和编译器。

The EFI Developer Kit II

EDK II是第二代EFI开发工具,主要有两个主要目标:

  1. EDK II将内容组织为整块(也称为“包”),将其整体添加和删除

  2. EDK II允许在多种操作系统下进行编译,包括Windows,Linux / Unix和Apple OS / X

EDK II是一个易于使用的开发环境,它将帮助您使用商业编译器,提供自托管开发,并提供库来协助管理常见任务。

EDK II 支持的调试

EDK II允许四种类型的调试

  • 源码级的调试:源代码级别以“ C”为基础,允许通过硬件仿真器和软件代理调试组件和应用程序

  • Debug Text Option: 允许将格式化的文本打印到控制台和/或串行流; 可以在EFI之前(PEI)阶段的早期以及所有驱动器执行环境(DXE)阶段使用。

  • Assertions: 查找条件时,该软件可以生成断言-强制声明消息和数据,并可以用于:
    1.发现错误的先前事件和情况
    2.帮助理解导致错误的事件

  • Status Code:状态代码允许记录进度,错误和调试代码。 并且,从Port80显示可选数据。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Intel® Platform Innovation Framework for EFI Architecture Specification (PDF 893KB) ACPI Specification v0.90 (PDF 212KB) ACPI Specification v0.91 (PDF 246KB) ACPI Table Storage Specification v0.90 (PDF 139KB) ACPI Table Storage Specification v0.91 (PDF 190KB) Boot Script Specification v0.9 (PDF 200KB) Boot Script Specification v0.91 (PDF 275KB) Cache Subclass Specification (PDF 224KB) Capsule Specification (PDF 270KB) Compatibility Support Module Specification v0.96 (PDF 547KB) Compatibility Support Module Specification v0.97 (PDF 576KB) CPU I/O Protocol Specification (PDF 205KB) Data Hub Specification (PDF 177KB) Data Hub Subclass Design Guide (PDF 156KB) Driver Execution Environment Core Interface Specification (DXE CIS)** v0.9 (PDF 1.05MB) Driver Execution Environment Core Interface Specification (DXE CIS)** v0.91 (PDF 1.07MB) Firmware File System Specification (PDF 237KB) Firmware Volume Block Specification (PDF 197KB) Firmware Volume Specification (PDF 403KB) Hand-Off Block (HOB) Specification (PDF 231KB) Hot-Plug PCI Initialization Protocol Specification (PDF 108KB) Human Interface Infrastructure Specification v0.9 (PDF 597KB) Human Interface Infrastructure Specification v0.91 (PDF 800KB) Human Interface Infrastructure Specification v0.92 (PDF 764KB) IDE Controller Initialization Protocol Specification (PDF 139KB) Memory Subclass Specification (PDF 397KB) Miscellaneous Subclass Specification (PDF 490KB) PCI Host Bridge Resource Allocation Protocol Specification (PDF 212KB) PCI Platform Support Specification (PDF 115KB) Platform IDE Initialization Protocol Specification (PDF 83KB) Pre-EFI Initialization Core Interface Specification (PEI CIS)** v0.9 (PDF 881KB) Pre-EFI Initialization Core Interface Specification (PEI CIS)** v0.91 (PDF 841KB) Processor Subclass Specification (PDF 314KB) Recovery Specification (PDF 225KB) S3 Resume Boot Path Specification (PDF 173KB) SMBus Host Controller Protocol Specification (PDF 198KB) SMBus PPI Specification (PDF 188KB) Status Codes Specification v0.9 (PDF 682KB) Status Codes Specification v0.92 (PDF 523KB) System Management Mode Core Interface Specification (SMM CIS) v0.9 (PDF 713KB) System Management Mode Core Interface Specification (SMM CIS) v0.91 (PDF 646KB)
### 回答1: UEFI BIOS Utility-EZ Mode是一种简单易用的BIOS设置界面,它提供了基本的系统信息、启动选项、调整CPU和内存频率、设置风扇控制等功能。它的设计使得用户可以轻松地进行基本的BIOS设置,而不需要深入了解BIOS的复杂性。 ### 回答2: UEFI BIOS Utility - EZ Mode是一种UEFI BIOS配置工具,它旨在使用户可以轻松管理和调整基本系统设置。EZ Mode提供了一个简化的图形用户界面面板,使用户能够快速而准确地调整各种BIOS选项。 EZ Mode界面以图形化方式呈现各种设置和参数,这使得用户可以更轻松地了解它们的含义和作用。例如,在EZ Mode中,用户可以快速地查看CPU速度、内存用量、系统温度、风扇转速等参数,并进行必要的调整以改善系统的性能和稳定性。 除了常规的设置,EZ Mode还提供了一些高级功能。例如,用户可以选择开启或关闭诸如Intel快速启动技术、USB 3.0支持、SATA控制器等功能,以最大程度地优化系统性能。 此外,EZ Mode还支持自动检测并更新BIOS固件,这可以保证系统始终运行在最新的稳定版本中。 总之,UEFI BIOS Utility - EZ Mode 是一个非常有用和功能强大的BIOS配置工具,它使用户在处理系统设置和参数时更加轻松。无论是普通用户还是高级用户,都可以从EZ Mode的功能中受益。 ### 回答3: UEFI BIOS Utility是现代计算机使用的一种新型Firmware。UEFI位于操作系统和硬件之间,主要负责计算机启动过程中的硬件自检以及操作系统的加载过程。UEFI BIOS Utility的EZ模式是一种简化操作的模式,旨在提供用户一个更加直观的界面,以便用户轻松地对计算机进行配置。 UEFI BIOS Utility的EZ模式提供了一个清晰的界面,可以让用户更加直观地了解计算机的硬件配置,系统信息以及启动选项等。在这种模式下,用户可以很方便地进行一些常见的设置,例如修改系统时间,设置启动顺序等等。同时,EZ模式还提供了导航面板,让用户轻松地找到需要的选项。 一些重要的系统配置也可以在EZ模式下进行调整。例如,用户可以配置CPU的频率和电压,设置内存检测参数等等。此外,用户还可以对硬盘进行分区,修改RAID设置和SATA模式等。 总之,UEFI BIOS Utility的EZ模式提供了一个真正的易用界面,让用户轻松处理大量的系统配置和硬件设置。当您需要进行系统调整的时候,把您的注意力放在EZ模式中,就不需要担心在BIOS中迷路了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值