guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: doc: Describe the Reduced Binary Seed bootstrap.


From: Jan Nieuwenhuizen
Subject: 01/01: doc: Describe the Reduced Binary Seed bootstrap.
Date: Mon, 17 Sep 2018 12:49:41 -0400 (EDT)

janneke pushed a commit to branch wip-bootstrap
in repository guix.

commit a957888b450f1865ed2ffd2d555ad03d0ec603e3
Author: Jan Nieuwenhuizen <address@hidden>
Date:   Mon Sep 17 18:48:19 2018 +0200

    doc: Describe the Reduced Binary Seed bootstrap.
    
    * doc/guix.texi (Reduced Binary Seed Bootstrap): New node.
---
 doc/guix.texi | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index 19a497c..3a037eb 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -210,6 +210,7 @@ GNU Distribution
 * Package Modules::             Packages from the programmer's viewpoint.
 * Packaging Guidelines::        Growing the distribution.
 * Bootstrapping::               GNU/Linux built from scratch.
+* Reduced Binary Seed Bootstrap::  A Bootstrap worthy of GNU.
 * Porting::                     Targeting another platform or kernel.
 
 System Installation
@@ -8657,6 +8658,7 @@ For information on porting to other architectures or 
kernels,
 * Package Modules::             Packages from the programmer's viewpoint.
 * Packaging Guidelines::        Growing the distribution.
 * Bootstrapping::               GNU/Linux built from scratch.
+* Reduced Binary Seed Bootstrap::  A Bootstrap worthy of GNU.
 * Porting::                     Targeting another platform or kernel.
 @end menu
 
@@ -23447,6 +23449,9 @@ Binutils, libc, and the other packages mentioned 
above---the
 These bootstrap binaries are ``taken for granted'', though we can also
 re-create them if needed (more on that later).
 
+For @code{i686-linux} the Guix bootstrap process is more elaborate,
address@hidden Binary Seed Bootstrap}.
+
 @unnumberedsubsec Preparing to Use the Bootstrap Binaries
 
 @c As of Emacs 24.3, Info-mode displays the image, but since it's a
@@ -23600,6 +23605,61 @@ 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!
 
address@hidden Reduced Binary Seed Bootstrap
address@hidden The Reduced Binary Seed Bootstrap
+
+Guix---like other GNU/Linux distributions---is traditionally bootstrapped from
+from a set of bootstrap binaries: Bourne shell, command-line tools provided by
+GNU Coreutils, Awk, Findutils, `sed', and `grep' and Guile, GCC, Binutils, and
+the GNU C Library (@pxref{Bootstrapping}).  Usually, these bootstrap-binaries
+are ``taken for granted.''
+
+What does this mean, really?  By taking these binaries for granted, trusting
+Guix depends on the trusting these binaries to be correct and clean.  Therein
+lies a problem: the current combined size of these bootstrap-binaries is about
+250MB (@pxref{Bootstrappable Builds,,, mes, Mes Reference Manual}).  Auditing
+or even inspecting these is next to impossible.
+
+For @code{i686-linux}, Guix now features a ``Reduced Binary Seed'' bootstrap
address@hidden would like to say: ``Full Source Bootstrap'' and while we are
+working towards that it would be a hyperbole to use that term for what we do
+now.}.
+
+The Reduced Binary Seed bootstrap removes the most critical tools---from a
+trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C
+Library are replaced by: @code{mescc-tools-seed} (a tiny assembler and linker)
address@hidden (a small Scheme Interpreter and a C compiler writen in Scheme)
+and @code{tinycc-seed} (the Mes C Library, built for TinyCC).  Using these new
+binary seeds and a new set of
address@hidden
+package address@hidden@c
+mescc-tools-boot,
+nyacc-boot,
+mes-boot,
+tcc-boot0,
+tcc-boot,
+make-mesboot0,
+diffutils-mesboot,
+binutils-mesboot0,
+gcc-core-mesboot,
+mesboot-headers,
+glibc-mesboot0,
+gcc-mesboot0,
+binutils-mesboot,
+make-mesboot,
+gcc-mesboot1,
+gcc-mesboot1-wrapper,
+glibc-headers-mesboot,
+glibc-mesboot,
+gcc-mesboot,
+gcc-mesboot-wrapper.
+}
address@hidden
+the ``missing'' Binutils, and the GNU C Library are built, from source.  From
+here on the more traditional bootstrap process resumes.  This approach has
+reduced the bootstrap binaries in size to about 130MB.  Work is ongoing to
+reduce this further.  If you are interested, join us on @code{#boottrappable}
+on the Freenode IRC network.
 
 @node Porting
 @section Porting to a New Platform



reply via email to

[Prev in Thread] Current Thread [Next in Thread]