Electronic Joint Business

Solution for E-Business

uefi

X86/x64 架构的系统地址表初始化(2): 基于 PCIe 的系统

如果读者对 PCI 总线协议还不太了解,建议您先阅读上一篇文章:《X86/x64 架构的系统地址表初始化(1): 基于 PCI 的系统》,以获得足够的背景知识方便理解本文。1

我们在第一篇文章中讨论了基于 PCI 的 X86/X64 系统的系统地址表的初始化。本文我们将关注更现代的系统,即基于 PCI Express 的 X86/X64 系统。后文 PCI Express 统一简称为 PCIe,以和 PCI Express 规格书保持一致。

我们将要研究基于 PCIe 的 X86/X64 系统的系统地址表初始化过程。和上一篇文章一样,重点在于理解 PCIe 总线协议的地址映射机制。要理解在 PCIe 系统上如何访问 PCI 扩展 ROM, 了解地址映射十分重要。

在物理层上 PCIe 完全不同于 PCI。但在逻辑层上,PCIe 只是 PCI 的扩展。事实上,在 PCIe 平台上可以引导专为 PCI 总线设计的操作系统,只要该 OS 支持 PCI 总线规范,就不会有问题。PCIe 是 PCI 扩展也意味着要理解 PCIe 协议,就要先熟悉 PCI 总线协议。这就是我建议您先阅读第一篇文章的原因。

约定
本文使用以下约定:

>>> 阅读全文

 

, , , , , ,

玩转 UEFI Secure Boot

对 Windows 8.0 的安全启动 (secure boot) 不少人都有困惑,但鲜有人真正了解它是如何工作的。我觉得理解它的最好方式就是从头开始配置安全启动,之后能就看清楚安全启动究竟带来了什么新功能。

首先要解决硬件问题。因为我手边缺少 UEFI 硬件以供测试。幸运的是 OVMF 开源项目提供了可供虚拟机使用的 UEFI 参考固件,它可以在 QEMU 中运行。EDK2 项目提供了编译好的二进制文件。但要支持安全启动,就需要自己动手重新编译。

我们需要的工具是 Intel 的 UEFI Build Tools,它是 EDK2 开发工具的一部分。 利用 svn 或者 git 可以检出 EDK2 源代码。

git clone git://github.com/tianocore/edk2.git

EDK2 随源代码还提供了最新的 Windows 版和 Unix 版的 BaseTools ,这是进行 UEFI 编程的一些辅助工具;如果选择在 Linux 上进行开发,你不得不选择重新编译 BaseTools,详情请参考 Ubuntu Wiki。1

这里假设 EDK2 源代码保存在 C:\edk2 目录中,后续的编译过程均以此为工作目录。你还需安装 iasl 和 Visual Studio 2012 Express 作为编译工具,isal 用于编译 ACPI 代码。此外还需要 Windows 8.0 SDK 或以上版本以及 .NET 4.5,该 SDK 提供了微软签名工具。

>>> 阅读全文

 

, , , , ,

Windows 8 之用UEFI 保护操作系统预启动环境

文章评价: 英文原文,本文翻译与中文MSDN略有不同
指导原则 – 安全问题绝不妥协
UEFI 安全启动协议是实现跨平台和固件安全的基础,与体系结构无关。在固件(firmware)被允许执行前,基于公钥(Public Key Infrastructure -PKI) 构件会验证其映像,安全启动有助于减少 boot loader attack 的风险。在 Windows 8 中,Microsoft基于该协议改进了平台安全性。

微软正和其伙伴合作,确保安全启动能为客户带来良好的安全体验。微软支持 OEM 灵活地决定谁来管理安全认证,如何让客户导入并管理这些认证以及管理安全启动。我们相信为 OEM 提供这种灵活性以及允许用户决定如何管理自己的系统来说非常重要。

对于 Windows 用户,Microsoft 正用 Windows 验证计划来确保带有 Windows 8 的系统默认就启用了安全启动;这样固件将不允许以编程方式来控制安全启动(以防止恶意软件关闭固件中的安全选项);在未经授权的情况下,OEM 禁止更新固件,因为这可能会危及系统的完整性。。

大部分的策略对于 UEFI 固件来说并不是新东西,如今大部分的 PC 也带有某种形式上的固件验证。甚至现存的老旧系统也支持诸如 BIOS 密码,一种已经被 OEM 和最终用户使用多年的安全启动的形式。但是,有了安全启动和 UEFI,微软和业界可以用更高的高度来创建更良好,更完整的系统,最终提供给用户更强有力的保护以应对不断增加的威胁。

什么是UEFI?
UEFI (Unified Extensible Firmware Interface) 由 UEFI 论坛管理,该论坛由芯片、硬件、系统、固件和操作系统厂商联合组建。该该论坛负责维护有关的规范、测试工具和参考实现,以便在不同的 UEFI PC 间使用。Microsoft 是该论坛的董事成员,该论坛对于任何个人或公司开放,并可免费加入。

>>> 阅读全文

 

, , ,