Bios实习 学习篇- 3.EDK II 构建描述文件体系

BIOS 工程里的 .inf、.dec、.dsc、.fdf 到底是什么?一文看懂 EDK II 的构建描述文件体系

如果把 BIOS 工程比作盖楼,源码文件只是砖头和钢筋,真正决定“怎么盖、盖成什么样、最后怎么封顶”的,是一组叫作 构建描述文件 的内容。在 EDK II 语境里,最核心的就是 .inf.dec.dsc.fdf 这四类文件:.inf 管模块,.dec 管包,.dsc 管平台,.fdf 管镜像。这个分工与 TianoCore 对 Build Description Files 以及 INF、DSC、FDF 规范中的定义是一致的。

1. .inf:模块说明书

.inf 的全称是 Module Information File,作用是描述“一个模块怎么编译”。它通常包含 [Defines][Sources][Packages][LibraryClasses] 等 section,用来说明模块有哪些源码、依赖哪些包、需要哪些库类、会用到哪些协议和 GUID。

可以把它理解为模块的“身份证 + 购物清单”——它说明自己是谁、需要什么,但并不决定所有最终配置。

2. .dec:包的公开目录

.dec 的全称是 Package Declaration File,作用是声明“这个包对外提供什么”。它会描述包中的 Include 路径,以及对外公开的 GUID、Protocol、PPI、Library Class、PCD 等资源。

模块在 .inf 中写明依赖哪些 package,构建系统再去对应的 .dec 中查找这些公共定义。所以,.dec 更像包的“接口目录”。

3. .dsc:平台总控文件

.dsc 的全称是 Platform Description File,它负责描述整个平台的构建方式。哪些模块要参与编译、模块依赖的库类最终映射到哪个库实例、平台级的编译选项和 PCD 如何配置,通常都由 .dsc 来决定。

因此,.dsc 很像平台构建的“总调度表”或“中枢神经”,负责把零散模块组织成一个完整平台。

4. .fdf:镜像装配图

.fdf 不再关注“模块怎么编”,而是关注“编好的东西怎么组成最终固件镜像”。它描述的是 BIOS 镜像的内容和布局,例如哪些模块放进哪个 Firmware Volume,最终怎样生成 FD、FV 或 Capsule。

如果说 .dsc 负责施工,那么 .fdf 就负责装配;一个负责把零件做出来,另一个负责把零件装进成品里。

5. 串起来看就很清楚

这四类文件可以连成一条很顺的链路:源码通过 .inf 描述成模块,模块通过 .dec 找到包级资源,平台通过 .dsc 统一组织构建,最后由 .fdf 生成固件镜像。

所以,理解 EDK II 最有效的方法,不是死背后缀,而是记住它们的职责分工:

.inf 管模块,.dec 管包,.dsc 管平台,.fdf 管镜像。

这四个文件,就是 BIOS/UEFI 工程里最核心的一组构建描述文件。至于 .vfr.uni.asl 等,也很重要,但更偏向 Setup 界面、字符串本地化和 ACPI 等专项内容,通常排在这四个核心文件之后。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务