学好 UEFI,实现从工程师到架构师的跨越

统一可扩展固件接口 UEFI,是由英特尔、微软等众多全球知名 IT企业共同开发、管理与推进的全新一代 BIOS 体系规范,目前作为最先进最完善的固件架构,已占据绝大部分计算机市场。X86 自然是不必多说,Arm产品也是紧随其上,现在,很多成熟的ARM服务器产品都采用了UEFI+ACPI方案,一些ARM移动和桌面产品也在采用UEFI+ACPI方案的路上,看起来形势一片大好。

UEFI之所以能迅速取代传统BIOS,得益于UEFI相对传统BIOS的几大优势。

1. UEFI的开发效率高

传统BIOS开发一般采用汇编语言,代码多是硬件相关的代码。而在UEFI中,绝大部分代码采用C语言编写,UEFI应用程序和驱动甚至可以使用C++编写。UEFI通过固件-操作系统接口(BS和RT服务)为OS和OS加载器屏蔽了底层硬件细节,使得UEFI上层应用可以方便重用。

2. UEFI系统的可扩展性强

UEFI系统的可扩展性体现在两个方面:一是驱动的模块化设计;二是软硬件升级的兼容性。大部分硬件的初始化通过UEFI驱动实现。每个驱动是一个独立的模块,可以包含在固件中,也可以放在设备上,运行时根据需要动态加载。UEFI中每个表、每个Protocol(包括驱动)都有版本号,这使得系统的平滑升级变得简单。

3. UEFI系统的性能更强

相比传统BIOS,UEFI有了很大的性能提升,从启动到进入操作系统的时间大大缩短。性能的提高源于以下几个方面:

1)UEFI提供了异步操作。基于事件的异步操作,提高了CPU利用率,减少了总的等待时间。

2)UEFI舍弃了中断这种比较耗时的操作外部设备的方式,仅仅保留了时钟中断。外部设备的操作采用“事件+异步操作”完成。

3)可伸缩的遍历设备的方式,启动时可以仅仅遍历启动所需的设备,从而加速系统启动。

4. UEFI系统的安全性更高

UEFI的一个重要突破就是其安全方面的考虑。当系统的安全启动功能被打开后,UEFI在执行应用程序和驱动前会先检测程序和驱动的证书,仅当证书被信任时才会执行这个应用程序或驱动。UEFI应用程序和驱动采用PE/COFF格式,其签名放在签名块中。

正因为 UEFI具有这么多优势,Arm支持UEFI自然也就顺理成章了。但目前ARM上的UEFI代码还存在一些问题,对ACPI的支持也不完善,无法自由安装通用操作系统。比如,要在 Arm 硬件上支持 Windows (WoA),目前仍有大量的工作需要做。

那么谁来完成这些工作呢?我在另一篇文章《PC 的下一波浪潮,你准备好了吗?》曾经提到,在上一波 PC 浪潮中,因为我们技术落后、起步较晚,我们已经处于很被动的地位。而在下一波 PC 浪潮(即Arm PC)中,我们再也不能袖手旁观了,我们必须义无反顾地投入到这股洪流中,学习它,体验它,参与到它的成长与壮大的过程中,这样我们才能把握它,引领它。就像马岩松所说:我不是一个旁观者,而是创造者。

这其中就包括学习UEFI,学习它的基本架构、实现方式。学好UEFI,可以加深对计算机系统的理解,可以打通知识壁垒,提高工作效率,最主要的是,可以让你实现从工程师到架构师的跨越。

幸运的是,格蠹科技创始人兼CEO张银奎老师,将在2024年初春推出一期关于UEFI编程的培训,并且已于2024年1月7号举办了一场线上直播,给大家分享了UEFI的前世今生。从与会者人数来看,大家对这个领域还是相当感兴趣的,有很多之前从事这个领域的朋友,也有很多后起之秀。

培训分6节课,都是以实战为主,以下是每节课的内容概要。

实战1 UEFI跑起来

要点:下载代码、调整信息输出、构建、熟悉镜像格式、烧录、启动、接收和分析调试信息、进入UEFI图形界面和外壳环境、执行外壳命令。

实战2 修改UEFI界面

要点:HII基础、定义表单、定义控件、界面和变量绑定、UEFI的配置机制(PCD)、定义PCD变量保存设置。

实战3 编写UEFI应用——PcdEdit

要点:UEFI模块、模块的基本文件(DSC、DEC、INF)、应用入口、UEFI的包、编写代码、观察和编辑PCD变量、加载和运行UEFI App、调试UEFI App的方法。

实战4 开发UEFI驱动

要点:面向对象基础、UEFI Protocol、GUID、函数指针、方法表、操作Protocol的基本函数:打开、寻找、响应。

实战5 权力移交——加载OS

要点:Boot Manager、通过UEFI启动Windows、通过UEFI启动grub、动态增加启动项、访问boot loader的原理和方法。

实战6 电池出来——与OS配合

要点:电池设备的驱动、UEIF的标准设备、Control Method Battery、ASL、使用ASL定义设备、结构体、字段、实现UEIF的标准方法、通过标准方法报告电池的基本信息和实时状态。

关于课程的更多信息,大家可以扫描下面的二维码查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值