HeadlinesBriefing favicon HeadlinesBriefing.com

Bootstrappable Builds auf FOSSY erklärt

Hacker News •
×

Nach drei Jahren in Portland, Oregon, zog die jährliche Free and Open Source Software Yearly Conference (FOSSY) an die University of British Columbia in Vancouver, Kanada. Im Track „Toolchains und Andere Entwicklungs-Tools“ präsentierte Timothy Sample das Thema bootstrappable Builds, ein Konzept, das weniger bekannt ist als reproduzierbare Builds. Ein bootstrappable Build beginnt mit einem kleinen Programm, das schrittweise immer größere Programme erstellt, bis schließlich aus einem kleinen Samen ein moderner Linux-Nutzerbereich entsteht, dessen Herkunft vollständig verstanden ist.

Sample bemerkte die überraschende Vertrautheit des Publikums mit dem Thema. Er begann vor fast zehn Jahren, bootstrappable Builds mit GNU Guix zu erforschen, einem funktionalen Paketmanager, der von Nix inspiriert ist. Beide Systeme repräsentieren Software in einem „Ableitungsgraphen“, der Hunderte von Build-Abhängigkeiten abbildet. Sample veranschaulichte die Komplexität anhand eines Python-Programms, das einen C-Compiler benötigt, der wiederum einen weiteren Compiler benötigt, und so weiter ins Unendliche. Traditionell halten Systeme wie Debian bei einem vorgefertigten C-Compiler-Binary an, während Guix ursprünglich bei einem 250 MB großen statisch gelinkten BLOB aus GNU-Nutzerbereichsprogrammen anhielt.

Das zentrale Ziel besteht darin, ein System aufzubauen, das nicht auf vorgefertigte Artefakte angewiesen ist. Sample verglich den Standard-Kompiliervorgang mit der Herstellung von Joghurt, die eine Starterkultur erfordert, oder der Verwendung des „Starters von Dennis Ritchie, der von den Bell Labs übernommen wurde“. Diese Herausforderung gilt für die meisten selbsthostenden Sprachen. Bootstrappable Builds sollen diese undurchsichtigen Binär-Samen eliminieren und eine nachprüfbare Software-Lieferkette von null bis zu einem modernen System gewährleisten.

Wichtige Entitäten: Unternehmen: GNU, Nix, Debian, LWN | Personen: Timothy Sample, Dennis Ritchie | Orte: University of British Columbia, Vancouver, Kanada, Portland, Oregon, Bell Labs

Häufig gestellte Fragen: Was ist der Unterschied zwischen reproduzierbaren Builds und bootstrappable Builds?

Reproduzierbare Builds stellen sicher, dass derselbe Quellcode identische Binärartefakte produziert, während bootstrappable Builds einen Schritt weitergehen, indem sie die Notwendigkeit vorgefertigter Binär-Samen eliminieren und die gesamte Toolchain aus einer minimalen, überprüfbaren Quelle aufbauen.