Bootstrappable builds: building Linux from a 256-byte seed

Bootstrappable Builds: How and Why

At FOSSY 2026, Timothy Sample explained how bootstrappable builds can reconstruct an entire Linux user space from a tiny, trusted seed—Guix now starts from just 256 bytes instead of a 250MB binary blob. This approach thwarts 'trusting-trust' attacks, where backdoors hide in self-hosting compilers, and offers a path to fully auditable software. Sample discussed techniques like archaeological digs through compiler history and bespoke tools like mrustc, while acknowledging challenges such as bootstrapping the kernel.

We're basically making C compilers with Dennis Ritchie's starter carried over from Bell Labs.
  1. 0xDEAFBEAD

    [delayed]

  2. robalni

    I am working on a project that will be like a whole environment

    bootstrapped from the smallest possible beginning.

    I thought a hex-to-binary converter like hex0 was too much like

    machine code, and I wanted everything to be source code, so I

    chose to instead start with a super simple interpreted language

    that is described in english and the user is supposed to write

    an interpreter for it themselves in any way they want. This

    way I connect the human to the computer using the language of

    the human which I thought felt better and easier to understand.

    This super simple interpreted language then builds a super

    simple RISC-V assembler. Here I came up with a nice technique

    where the functions in the assembler are called through

    pointers, which makes them replacable while the asesmbler is

    running. So as soon as the assembler has compiled a better

    version of one of its own functions, that function is then

    replaced with the better version while the asesmbler is running

    and it continues to compile the rest of the code which can then

    use the new features. So it evolves without having to restart.

  3. moring

    > The hex0 program provides a way to turn a string of hexadecimal text into a binary with those bytes.

    I'll use this to ask for an explanation about the fundamental idea: How is hex text better than a binary blob? Both need detailed knowledge to understand; both need a tool to display (reading ASCII or binary), either of which could be compromised in a "trusting trust" sense.

    It seems to me that the actually important aspects of the initial "seed" are its size (larger is harder to verify) and that the language used (whether it is Lisp, binary machine code or whatever) has rigorously defined semantics.

    (Orthogonal to that, you'd want to store everything, seed and the rest, on a medium that cannot hide anything from you, and use that as the source. But that applies to all approaches.)

  4. lrvick

    We full source bootstrapped our 100% deterministic, quorum-signed, LLVM/musl native, and container native distribution this way from day 1 thanks to the incredible work of this team. Bootstrappable builds unlocked stagex, which unlocks remotely attestable boots that can walk the trust chain from a live server boot all the way back to hex0.

    https://stagex.tools

    https://codeberg.org/stagex

    https://distrust.co/blog/enclaveos.html

    https://caution.co/

  5. andrewchambers

    Would love to see someone try to automate the bootstrap chain from a working C89 compiler to Rust.

    At this point I think current LLMs are able help these incredible feats of bootstrapping as they can grind out the impossibly long built times over multiple days/weeks.

    I am very optimistic for deterministic builds in general.

More from this day

2026-08-28