diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-12-03 17:31:51 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-12-03 19:12:16 +0100 |
commit | 350cb5ba84d1f23adfa3bde976fd99f695baf74c (patch) | |
tree | d4abcddedbcff1a128ec5195ad9f764a85b63567 | |
parent | af4a761e97c309e3dce8ddf0cbbc1a369573199a (diff) | |
download | guix-350cb5ba84d1f23adfa3bde976fd99f695baf74c.tar.gz |
doc: Link to work on bootstrapping.
* doc/guix.texi (Reducing the Set of Bootstrap Binaries): New section.
-rw-r--r-- | doc/guix.texi | 22 |
1 files changed, 22 insertions, 0 deletions
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 |