自举构建:从种子程序到现代 Linux 用户空间
来源: lwn.net — 2026-08-17
概述
LWN 报道 FOSSY 大会上 Timothy Sample 关于自举构建(bootstrappable builds)的演讲。自举构建的核心是从一个极小的种子程序出发,让它构建出稍大一点的程序,再以此类推,最终从种子一路构建出现代 Linux 用户空间的全部内容,从而让每一行代码的来源都完全可追溯。作者用「用奶奶从旧大陆带来的酸面团种做面包」来比喻今天用 Dennis Ritchie 从贝尔实验室带出来的 C 编译器起点来编译 C。Sample 十年前用 GNU Guix 时就开始走上这条路——Guix 最初的自举起点是一个 250MB 的静态 GNU 用户空间 blob,而目标是把起点缩小到最小、让整个系统可被完整自举。
核心要点
- 自举构建从极小种子程序出发逐级放大,最终从零构建出整个现代 Linux 用户空间
- 与可复现构建不同,自举构建追求代码来源的完全可理解
- 作者用「用奶奶的酸面团种做面包」比喻今天仍在用 Dennis Ritchie 的 C 编译器起点编译 C
- Debian 的自举起点是一个已上传的 C 编译器二进制,Guix 的起点则是 250MB 静态 GNU blob
- Sample 约十年前开始使用 GNU Guix 时踏上自举构建之路
金句
我们其实是在用 Dennis Ritchie 从贝尔实验室带出来的酵母菌种发面——每一代编译器都在上一代之上生长。
👍 0
👎 0
返回 Lobsters 首页