En la conferencia FOSSY 2026, celebrada en el campus de la Universidad de Columbia Británica (Vancouver, Canadá), Timothy Sample pronunció una charla en la pista 'Toolchains and Other Development Tools' dedicada a los builds bootstrapeables, una disciplina menos conocida que los builds reproducibles pero con un propósito distinto. La idea central es sencilla: construir todo el espacio de usuario moderno de Linux partiendo de una semilla mínima, sin depender de artefactos precompilados cuya procedencia no se pueda rastrear. Sample, desarrollador de GNU Guix desde hace casi una década, explicó que Guix —un gestor de paquetes funcional inspirado en Nix— representa todo el software del sistema en un grafo de derivaciones con cientos de nodos, lo que plantea la pregunta inevitable: ¿quién compila el compilador del compilador, y dónde se detiene la cadena? En sistemas como Debian la cadena termina en un binario de compilador C subido al repositorio; en Guix, originalmente, en un blob estático de 250 MB cuyo origen último no estaba del todo claro. La motivación de seguridad se remonta a la famosa conferencia del Premio Turing de Ken Thompson ('Reflections on Trusting Trust'), que demostró cómo un compilador puede ocultar detalles —incluidas puertas traseras— en su forma binaria sin que aparezcan en el código fuente. Sample citó además un artículo reciente ('Trusting-Trust Attack against an Entire Linux Distribution through Binary Manipulation') que mostró un ataque real de este tipo contra el programa strip en NixOS, capaz de comprometer prácticamente todo el sistema. La solución pasa por ser proactivo: conservar las implementaciones previas de los compiladores (como la versión en C de GNU Guile o el script de shell que acompaña a GNU Make) para mantener siempre una rampa de construcción alternativa. Además de la seguridad, los builds bootstrapeables aportan beneficios para la libertad del software y permiten verificar que el código fuente corresponde efectivamente al binario en ejecución.
Builds bootstrapeables: cómo y por qué reconstruir el software desde cero
Fuentes:
Bootstrappable builds: how and why
