python html5 bootstrap 视频教程
德云社区 门户 行业资讯 行业标准 IT 标准 查看内容

UEFI──BIOS 的替代接口标准

2014-12-20 10:30| 发布者: digitser| 查看: 6289| 评论: 2|原作者: liuliuab1

摘要: UEFI──BIOS 的替代接口标准 新型 UEFI,全称 “统一的可扩展固件接口” (Unified Extensible Firmware Interface), 是一种详细描述类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操 ...
自动立式分页纸箱赋码系统 ── 全自动 专业 立式分页 瓦楞纸 水性油墨 贴标 喷码 检测系统

01.png
      新型 UEFI,全称 “统一的可扩展固件接口” (Unified Extensible Firmware Interface), 是一种详细描述类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。

       可扩展固件接口(Extensible Firmware InterfaceEFI)是 Intel 为 PC 固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在 OS 加载之前(启动前)在所有平台上一致的、正确指定的启动服务,被看做是有近 20 多年历史的 BIOS 的继任者。

       UEFI 是由 EFI 1.10 为基础发展起来的,它的所有者已不再是 Intel,而是一个称作 Unified EFI Form 的国际组织。

作用:
       BIOS 即 Basic Input/Output System,翻成中文是 “基本输入/输出系统”,是一种所谓的 “固件”,负责在开机时做硬件启动和检测等工作,并且担任操作系统控制硬件时的中介角色。

       因为硬件发展迅速,传统式(Legacy)BIOS 成为进步的包袱,现在已发展出最新的 UEFI(Unified Extensible Firmware Interface)可扩展固件接口,相比传统 BIOS 的来说,未来将是一个 “没有特定 BIOS” 的电脑时代。
02.jpg
与 legacy BIOS 相比,UEFI 最大的几个区别在于:
       1. 编码 99% 都是由 C 语言完成;
       2. 一改之前的中断、硬件端口操作的方法,而采用了 Driver/protocol 的新方式;
       3. 将不支持 X86 实模式,而直接采用 Flat mode(也就是不能用 DOS 了,现在有些 EFI 或 UEFI 能用是因为做了兼容,但实际上这部分不属于 UEFI 的定义了);
       4. 输出也不再是单纯的二进制 code,改为 Removable Binary Drivers
       5. OS 启动不再是调用 Int 19,而是直接利用 protocol/device Path
       6. 对于第三方的开发,前者基本上做不到,除非参与 BIOS 的设计,但是还要受到 ROM 的大小限制,而后者就便利多了。
       7.弥补 BIOS 对新硬件的支持不足的毛病。

结构:
       UEFI 使用模块化设计,它在逻辑上可分为硬件控制和 OS 软件管理两部分:操作系统—可扩展固件接口—固件—硬件。
       根据 UEFI 概念图的结构,可把 UEFI 概念划为两部分:UEFI 的实体 (uEFI Image)跟平台初始化框架。

UEFI的实体-UEFI Image
       根据 UEFI 规范定义,UEFI Image 包含三种:uEFI Applications, OS Loaders and uEFI Drivers
       UEFI Applications 是硬件初始化完,操作系统启动之前的核心应用,比如:启动管理、BIOS 设置UEFI Shell、诊断程式、调度和供应程式、调试应用...等等。
       OS Loaders 是特殊的  UEFI Application,主要功能是启动操作系统并退出和关闭 EFI 应用。
       UEFI Drivers 是提供设备间接口协议,每个设备独立运行提供设备版本号和相应的参数以及设备间关联,不再需要基于操作系统的支持。

平台初始化框架
       UEFI 框架主要包含两部分,一是 PEI(EFI 预初始化),另一部分是驱动执行环境 (DXE)。
       PEI 主要是用来检测启动模式、加载主存储器初始化模块、检测和加载驱动执行环境核心。
       DXE 是设备初始化的主要环节,它提供了设备驱动和协议接口环境界面。

纠错特性
       与 BIOS 显著不同的是,UEFI 是用模块化、C 语言风格的参数堆栈传递方式、动态链接的形式构建系统,它比 BIOS 更易于实现,容错和纠错特性也更强,从而缩短了系统研发的时间。更加重要的是,它运行于 32 位或 64 位模式,突破了传统 16 位代码的寻址能力,达到处理器的最大寻址,此举克服了 BIOS 代码运行缓慢的弊端。

兼容性
       与 BIOS 不同的是,UEFI 体系的驱动并不是由直接运行在 CPU 上的代码组成的,而是用 EFI Byte Code(EFI 字节代码)编写而成的。Java 是以 “Byte Code” 形式存在的,正是这种没有一步到位的中间性机制,使 Java 可以在多种平台上运行。UEFI 也借鉴了类似的做法。EFI Byte Code 是一组用于 UEFI 驱动的虚拟机器指令,必须在 UEFI 驱动运行环境下被解释运行,由此保证了充分的向下兼容性。

       一个带有 UEFI 驱动的扩展设备既可以安装在使用安腾的系统中,也可以安装在支持 UEFI 的新 PC 系统中,它的 UEFI 驱动不必重新编写,这样就无须考虑系统升级后的兼容性问题。基于解释引擎的执行机制,还大大降低了 UEFI 驱动编写的复杂门槛,所有的 PC 部件提供商都可以参与。

鼠标操作
       UEFI 内置图形驱动功能,可以提供一个高分辨率的彩色图形环境,用户进入后能用鼠标点击调整配置,一切就像操作 Windows 系统下的应用软件一样简单。

可扩展性
       UEFI 将使用模块化设计,它在逻辑上分为硬件控制与 OS(操作系统)软件管理两部分,硬件控制为所有 UEFI 版本所共有,而 OS 软件管理其实是一个可编程的开放接口。借助这个接口,主板厂商可以实现各种丰富的功能。比如我们熟悉的各种备份及诊断功能可通过 UEFI 加以实现,主板或固件厂商可以将它们作为自身产品的一大卖点。UEFI 也提供了强大的联网功能,其他用户可以对你的主机进行可靠的远程故障诊断,而这一切并不需要进入操作系统。
03.jpg
图形界面
       目前 UEFI 主要由这几部分构成:UEFI 初始化模块、UEFI 驱动执行环境、UEFI 驱动程序、兼容性支持模块、UEFI 高层应用和 GUID 磁盘分区组成。

       UEFI 初始化模块和驱动执行环境通常被集成在一个只读存储器中,就好比如今的 BIOS 固化程序一样。UEFI 初始化程序在系统开机的时候最先得到执行,它负责最初的 CPU、北桥、南桥及存储器的初始化工作,当这部分设备就绪后,紧接着它就载入 UEFI 驱动执行环境(Driver Execution Environment,简称 DXE)。当 DXE 被载入时,系统就可以加载硬件设备的 UEFI 驱动程序了。 DXE 使用了枚举的方式加载各种总线及设备驱动,UEFI 驱动程序可以放置于系统的任何位置,只要保证它可以按顺序被正确枚举。借助这一点,我们可以把众多设备的驱动放置在磁盘的 UEFI 专用分区中,当系统正确加载这个磁盘后,这些驱动就可以被读取并应用了。在这个特性的作用下,即使新设备再多,UEFI 也可以轻松地一一支持,由此克服了传统 BIOS 捉襟见肘的情形。UEFI 能支持网络设备并轻松联网,原因就在于此。
04.jpg
       值得注意的是,一种突破传统 MBR(主引导记录)磁盘分区结构限制的 GUID(全局唯一标志符)磁盘分区系统将在 UEFI 规范中被引入。MBR 结构磁盘只允许存在 4 个主分区,而这种新结构却不受限制,分区类型也改由 GUID 来表示。在众多的分区类型中,UEFI 系统分区用来存放驱动和应用程序。很多朋友或许对这一点感到担心:当 UEFI 系统分区遭到破坏时怎么办?而容易受病毒侵扰更是 UEFI 被人诟病的一大致命缺陷。事实上,系统引导所依赖的 UEFI 驱动通常不会存放在 UEFI 系统分区中,当该分区的驱动程序遭到破坏,我们可以使用简单方法加以恢复,根本不用担心。

       X86 处理器能够取得成功,与它良好的兼容性是分不开的。为了让不具备UEFI引导功能的操作系统提供类似于传统 BIOS 的系统服务,UEFI 还特意提供了一个兼容性支持模块,这就保证了 UEFI 在技术上的良好过渡。

版权声明:
本文由 德云社区 整理,原文来自网络。


路过

雷人

握手

鲜花

鸡蛋
AI人工智能 语音助理 人工翻译 教程

相关阅读

发表评论

最新评论

引用 liuliuab1 2014-12-10 23:24
本帖最后由 liuliuab1 于 2014-12-12 01:00 编辑

UEFI, BIOS, 字节码, 接口, 贴标机
引用 liuliuab1 2014-12-10 23:24
本帖最后由 liuliuab1 于 2014-12-12 01:00 编辑

UEFI, BIOS, 字节码, 接口, 贴标机

查看全部评论(2)

Python 3.9.7 非官方中文文档编制 手册帮助文件 人工翻译
Python 3.9.7 非官方中文文档编制 手册帮助文件 人工翻译 网页背景由之前的白色主题,切换成黑色主题,保护视力及增强阅读体验。 感谢 德云社区 和 乐数软件 的支持,由本[40/2021-09-12]
Cython 模块扩展 - 编程语言 替代实现 应用领域 汇总一览
Python 模块扩展 - 编程语言 替代实现 应用领域 汇总一览 Python 本身是一种编程语言规范,可以使用其它编程语言实现它或扩展它;譬如:采有 Python C Java .Net 等重实现[22/2021-09-11]
Python 3.4.4 非官方中文文档编制 手册帮助文件 人工翻译
Python 3.4.4 非官方中文文档编制 手册帮助文件 人工翻译 网页背景由之前的白色主题,切换成黑色主题,保护视力及增强阅读体验。 感谢德云社区 广州德数 乐数软件 的支持[63/2021-08-29]
从 Qt 6.0 起移除QtWidgets::QDesktopWidget 之后使用QtGui::QScreen 代替
从 Qt 6.0 起移除QtWidgets :: QDesktopWidget 之后使用QtGui :: QScreen 代替 QtWidgets :: QDesktopWidget 在 Qt 5.9 中还有不少独立定义函数、信号、重实现保护函数,但[53/2021-08-24]
gb18030-2005 - 含少数民族文字 70000个汉字的中文字符编码集
gb18030-2005 - 含少数民族文字 70000个汉字的中文字符编码集 GB18030有两个版本:GB18030-2000和GB18030-2005。 GB18030-2005与GB18030-2000的编码体系结构是完全相同的[82/2021-08-12]
Django - 采用MTV模式 BSD协议的Python自由开源Web应用框架
Django - 采用MTV模式 BSD协议的Python自由开源Web应用框架 Django(发音:)是一种用python语言编写的,可快速开发、实用雅洁的自由开源高级web应用框架(open source web fr[105/2021-07-31]
Wing IDE - 快速 功能强大的Python Django PyQt集成开发环境
Wing IDE - 快速 功能强大的Python Django PyQt集成开发环境 Wing IDE是Python语言集成开发环境IDE,包含大量语法标签高亮显示。与其他类似IDE相比,其最大特色是可以调试[49/2021-07-31]
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 更新日志
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 更新日志 本文档编制还适于 PyPDF3 新版用户。 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译[42/2021-07-28]
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 全人工翻译
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 全人工翻译 本文档编制还适于 PyPDF3 新版用户。 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻[96/2021-07-28]
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 全人工翻译
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 OpenPyXL 3.0.7。 OpenPyXL 3.0.[80/2021-07-28]
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 更新日志
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 OpenPyXL 3.0.7。 OpenPyXL 3.0.7 [47/2021-07-28]
Microsoft .NET 4.6.1 for Win7 SP1-10 x86-x64-AllOS-ENU 官方离线安装包
Microsoft .NET 4.6.1 for Win7 SP1-10 x86-x64-AllOS-ENU 官方离线安装包 注意:Microsoft .NET 4.6.2 不支持 Win7 SP1。 Microsoft .NET 4.6.1 发行于 2015/11/17,支持[63/2021-07-18]
Visual Studio Community 2017 2019 - 简化版微软 VC 构建编译工具
Visual Studio Community 2017 2019 - 简化版微软 VC 构建编译工具 Visual Studio Community 2017 版和 Visual Studio Community 2019 版安装包体积过大,安装占用空间多时[53/2021-07-18]
PotPlayer - 功能强大 内置解码器齐全 以VC++编写的播放器
PotPlayer - 功能强大 内置解码器齐全 以VC++编写的播放器 PotPlayer 是 KMPlayer 的 (韩国) 原制作者姜龙喜先生进入 Daum 公司后用 C++ 完全重写的新一代播放器作品。PotP[205/2021-06-20]
数字 Python IDE 2021 注册机 注册码生成器 附详细破解方法
数字 Python IDE 2021 注册机 注册码生成器 附详细破解方法 完整 完美破解补丁 注册机 注册码生成器,破解后与 VIP 客户在功能方面没有任何区别。 数字 Python IDE 和数[142/2021-06-17]

Archiver|Sitemap|小黑屋|德云社区   

GMT+8, 2021-9-25 00:04 , Processed in 0.027451 second(s), 29 queries .

工业和信息化部: 粤ICP备14079481号-2

技术支持 乐数软件     版权所有 © 2014-2021 德云社区    

返回顶部