ByteNoteByteNote
跳过操作系统写裸机程序:Kevin Boone 的 UEFI 入门系列
字

字节笔记本

2026年11月7日 · 约 3 分钟读完

跳过操作系统写裸机程序:Kevin Boone 的 UEFI 入门系列

API中转
¥120

不装操作系统、不写内核,程序直接跑在 UEFI 固件上——Kevin Boone 面向"有 Linux 经验但没碰过 UEFI 的开发者"写了一个五篇递进的教程系列(kevinboone.me,2026 年 10 月 12 日),最近被顶上 HN 首页:197 分、36 条评论(2026-11-07 快照)。

Kevin Boone 的 UEFI 教程系列页面

系列讲什么(系列索引页口径)

五篇按顺序读,每篇建立在前一篇上:

  1. Part 1 – Compiling and Linking:工具链与编译链接——没有 C 标准库的世界怎么把程序编出来;
  2. Part 2 – The EFI system partition:EFI 系统分区是怎么回事;
  3. Part 3 – Making a DVD or USB flash image:做出能启动的 DVD 或 U 盘镜像;
  4. Part 4 – A pragmatic digression:一个务实的插叙;
  5. Part 5 – Handling files using the Simple File Protocol:用 Simple File Protocol 读写文件。

为什么值得读(HN 讨论补充)

评论区把这套系列的"坑点"价值讲透了:UEFI 世界里有不少反直觉的设计——字符串是 UTF-16、镜像是 PE32+、约定带着 Windows 血统;链接时缺函数不会报错,跑到运行时才崩;评论区还补了生态位:缺 libc 功能可以上 edk2-libc 或 LLVM 的 UEFI libc,替代路线有 Multiboot2,老牌参考有 Rod Smith 的 efi-programming 与 OSDev wiki。

判断

对想理解"操作系统启动之前发生了什么"的开发者,这是个难得的低门槛入口:不用先啃 OSDev 的整座山,从 UEFI 这个"固件提供的服务"层切入,五篇就能跑出第一个裸机程序。三点说明:① 系列面向 experienced Linux developers,零基础 C 语言不够用;② 评论区有人较真"UEFI 算不算 bare metal"(上面还有 SMM 与固件层)——严格说是"无 OS 编程",标题党之争不重要,学的东西是真的;③ 现代 ARM 笔记本也走 UEFI,这套知识不是 x86 古董。

参考来源

相关文章

分享: