HeadlinesBriefing favicon HeadlinesBriefing.com

FOSSYにおけるブートストラップ可能なビルドの説明

Hacker News •
×

フリーおよびオープンソースソフトウェア年間会議(FOSSY)は、ポートランド、オレゴンでの3年間の開催後、カナダのブリティッシュコロンビア大学バンクーバー校に移転しました。「ツールチェーンおよびその他の開発ツール」トラックで、ティモシー・サンプルはブートストラップ可能なビルドについて講演しました。これは再現可能なビルドよりも知られていない概念です。ブートストラップ可能なビルドは、小さなプログラムから始まり、徐々に大きなプログラムを構築していき、最終的に小さなシードから現代のLinuxユーザースペースを構築し、その結果、起源が完全に理解できるコードが得られます。

サンプルは、聴衆がこのトピックに驚くほど精通していることに気づきました。彼はほぼ10年前、Nixにインスパイアされた関数型パッケージマネージャーであるGNU Guixを使用して、ブートストラップ可能なビルドの研究を開始しました。両システムはソフトウェアを「導出グラフ」として表現し、数百のビルド依存関係をマッピングします。サンプルは、Cコンパイラを必要とするPythonプログラムを例に挙げてその複雑さを説明しました。このCコンパイラはさらに別のコンパイラを必要とし、これが無限に続きます。伝統的に、DebianなどのシステムはプリロードされたCコンパイラのバイナリーで停止し、Guixは当初、250MBのスタティックリンクされたGNUユーザースペースプログラムのBLOBで停止していました。

中心的な目標は、プリビルドアーティファクトに依存せずにシステムを構築することです。サンプルは、標準的なコンパイルをヨーグルトを作るためにスターターカルチャーが必要なプロセスに例え、または「ベル研究所から引き継がれたデニス・リッチーのスターター」の使用に例えました。この課題は、ほとんどのセルフホスティング言語に適用されます。ブートストラップ可能なビルドは、これらの不透明なバイナリーシードを排除し、ゼロから現代のシステムまで検証可能なソフトウェアサプライチェーンを確保することを目的としています。

主要なエンティティ: 企業: GNU, Nix, Debian, LWN | 人物: ティモシー・サンプル, デニス・リッチー | 場所: ブリティッシュコロンビア大学, バンクーバー, カナダ, ポートランド, オレゴン, ベル研究所

よくある質問: 再現可能なビルドとブートストラップ可能なビルドの違いは何ですか?

再現可能なビルドは、同じソースコードが同一のバイナリーアーティファクトを生成することを保証します。一方、ブートストラップ可能なビルドは、事前に存在するバイナリーシードの必要性をなくし、最小限で監査可能なソースからツールチェーン全体を構築することにより、さらに一歩進みます。