HeadlinesBriefing favicon HeadlinesBriefing.com

FOSSY 上的可引导构建解析

Hacker News •
×

免费和开源软件年度会议(FOSSY)在波特兰,俄勒冈州举办了三年后,搬到了加拿大不列颠哥伦比亚大学温哥华分校。在“工具链和其他开发工具”专题中,Timothy Sample 就可引导构建进行了演讲,这一概念比可重现构建知名度低。可引导构建从一个微小程序开始,逐步构建更大的程序,直到从一个微小种子构建出现代 Linux 用户空间,从而得到来源完全可理解的代码。

Sample 观察到听众对该主题出人意料的熟悉。他近十年前开始使用 GNU Guix(受 Nix 启发的函数式包管理器)探索可引导构建。两种系统都将软件表示为“导出图”,映射数百个构建依赖。Sample 用一个需要 C 编译器的 Python 程序来说明其复杂性,而该 C 编译器又需要另一个编译器,如此无限循环。传统上,像 Debian 这样的系统会在预上传的 C 编译器二进制文件处停止,而 Guix 最初则停止在一个 250MB 的静态链接 GNU 用户空间程序 blob 上。

核心目标是构建一个系统而不依赖于预构建的工件。Sample 将标准编译比作需要启动菌种制作酸奶,或使用“来自贝尔实验室的 Dennis Ritchie 的启动菌种”。这一挑战适用于大多数自托管语言。可引导构建旨在消除这些不透明的二进制种子,确保从零到现代系统的可验证软件供应链。

关键实体:公司:GNU, Nix, Debian, LWN | 人物:Timothy Sample, Dennis Ritchie | 地点:不列颠哥伦比亚大学,温哥华,加拿大,波特兰,俄勒冈州,贝尔实验室

常见问题:可重现构建和可引导构建有什么区别?

可重现构建确保相同的源代码产生完全相同的二进制制品,而可引导构建则更进一步,通过消除对预存在二进制种子的需求,从最小的、可审计的源头构建整个工具链。