From 350cb5ba84d1f23adfa3bde976fd99f695baf74c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 3 Dec 2017 17:31:51 +0100 Subject: doc: Link to work on bootstrapping. * doc/guix.texi (Reducing the Set of Bootstrap Binaries): New section. --- doc/guix.texi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index cad2b86e76..2b1b89fbea 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -20302,6 +20302,28 @@ unknown, but if you would like to investigate further (and have significant computational and storage resources to do so), then let us know. +@unnumberedsubsec Reducing the Set of Bootstrap Binaries + +Our bootstrap binaries currently include GCC, Guile, etc. That's a lot +of binary code! Why is that a problem? It's a problem because these +big chunks of binary code are practically non-auditable, which makes it +hard to establish what source code produced them. Every unauditable +binary also leaves us vulnerable to compiler backdoors as described by +Ken Thompson in the 1984 paper @emph{Reflections on Trusting Trust}. + +This is mitigated by the fact that our bootstrap binaries were generated +from an earlier Guix revision. Nevertheless it lacks the level of +transparency that we get in the rest of the package dependency graph, +where Guix always gives us a source-to-binary mapping. Thus, our goal +is to reduce the set of bootstrap binaries to the bare minimum. + +The @uref{http://bootstrappable.org, Bootstrappable.org web site} lists +on-going projects to do that. One of these is about replacing the +bootstrap GCC with a sequence of assemblers, interpreters, and compilers +of increasing complexity, which could be built from source starting from +a simple and auditable assembler. Your help is welcome! + + @node Porting @section Porting to a New Platform -- cgit v1.2.1