
UEFI
文章平均质量分 81
记录学习UEFI过程,方便回顾。
Yang_Winston
这个作者很懒,什么都没留下…
展开
-
UEFI开发学习系列
Ubuntu搭建edk开发环境原创 2021-08-20 15:03:05 · 247 阅读 · 0 评论 -
UEFI Secure Boot
在计算机世界,安全是一个永恒的话题。微软的Windows的安全性一直深受诟病,但随着操作系统层面的漏洞逐渐减少,黑客们盯上了BIOS固件。那如何保证从开机到进入操作系统这个过程中的安全呢?下图是Intel CPU的整个UEFI安全启动链条,涉及到了Boot Guard、Secure Boot等技术。Microcode验证ACM, ACM验证IBB,IBB验证OBB,而OBB后面就是本文的主题UEFI Secure Boot。UEFI Secure Boot是UEFI规范中所定义的一个功能。原创 2024-03-05 16:46:16 · 2733 阅读 · 0 评论 -
UEFI——PCD介绍
PCD(Platform Configuration Database,平台配置数据库)就是抽取出代码中可配置的数据而不修改源代码。类似C语言中的宏,降低了代码维护的工作量,增加了可复用性。不同于宏的是,有些PCD(动态PCD)可以在代码运行的时候修改。MdeModulePkg/Universal/PCD/Dxe/Pcd.inf文件中有完整介绍。原创 2024-01-25 14:54:17 · 3072 阅读 · 1 评论 -
UEFI开发学习7 - Event相关服务
UEFI提供了异步操作,Event是异步操作的基础,有了Event的支持,才可以在UEFI系统内执行并发操作,基于Event的异步操作,提高了CPU利用率,减少了总的等待时间。原创 2023-05-11 14:47:52 · 1699 阅读 · 0 评论 -
EDK II编译过程
介绍了EDKII编译的大致过程。原创 2023-02-11 14:46:30 · 1322 阅读 · 0 评论 -
UEFI开发学习4 - 初识Variable Services
1 概要Variable Services是Runtime Services的一部分,提供关于Variable的一些服务,Variable被定义为键值对,由标识信息加上属性(键)和任意数据(值)组成。Variable用于存储在平台实现的EFI环境和EFI OS加载器以及在EFI环境中的其他应用程序之间传递数据。(1、一个Guid可以对应多个Variable,一个Variable中包含多种不同数据类型的数据(结构体)?;2、Setup界面中的一些值就是Variable,通过这种方式来存储。)UEFI规范为原创 2022-02-10 16:04:15 · 3391 阅读 · 0 评论 -
UEFI开发学习6 - Protocol的创建
1 介绍同样在UEFI Spec的第七章Boot Service中有两个关于Protocol创建的函数,分别是InstallProtocolInterface()和InstallMultipleProtocolInterfaces()。顾名思义,前者是只安装一个ProtocolInterface,后者可以安装一个或多个ProtocolInterface,此外,InstallMultipleProtocolInterfaces()比InstallProtocolInterface()执行更多的错误检查,因此原创 2022-02-10 15:57:46 · 3910 阅读 · 0 评论 -
UEFI开发学习5 - Protocol的简单使用
1 介绍在UEFI Spec的第七章可以看到,Boot Service中提供了丰富的服务供开发者操作Protocol,本文主要介绍如何使用Protocol。使用Protocol一般分为三个步骤:1、通过启动服务找出Protocol对象;2、使用这个Protocol提供的服务;3、关闭打开的Protocol。先介绍一下一些相关的服务,有:HandleProtocol、OpenProtocol、LoacalHandleBuffer和LocateProtocol。1.1 HandleProtocol原创 2022-02-10 15:43:46 · 1873 阅读 · 0 评论 -
UEFI开发学习3 - 创建UEFI程序
这篇文章主要说明一个UEFI程序是如何创建的,没有复杂的功能,只是包含写一个UEFI程序所需要的一些基本文件和操作,在shell界面简单输出Hello world。下面说一下步骤:首先在vUDK2017/EmulatorPkg/Application目录下新建一个HelloWorld文件夹,在创建HelloWorld.c和HelloWorld.inf文件。这里不一定要在EmulatorPkg下才能创建UEFI程序,我们也可以自己创建一个Pkg目录用来写自己的程序,但是编译的时候要指定编译哪个Pkg,可以在原创 2022-02-10 11:21:02 · 3417 阅读 · 3 评论 -
UEFI开发学习2 - 在qemu中运行OVMF
在qemu中运行OVMF安装qemu首先需要在Ubuntu中安装qemu,使用如下命令安装。sudo apt-get install qemu选择正确的处理器架构Be sure to align the processor architecture for OVMF with the proper processor archtecture of QEMU.For the IA32 build of OVMF, there is a little more choice, since the原创 2021-11-02 11:41:17 · 3028 阅读 · 0 评论 -
UEFI开发学习1 - Ubuntu18.04搭建edk2环境
Ubuntu18.04搭建edk2环境参考:戴正华《UEFI原理与编程》、官方文档edk2版本:UDK2017Ubuntu使用VMware安装。注意:使用GCC5安装编译环境首先安装好Ubuntu后,打开GNOME,输入以下命令将会安装好需要的包。bash$ sudo apt-get install build-essential uuid-dev iasl git gcc-5 nasm python3-distutils命令后各参数的意义如下:build-essential - Inf原创 2021-06-07 19:35:05 · 1137 阅读 · 0 评论