logo

bootstrap-initrd

Linux initrd to bootstrap from a small binary seed git clone https://hacktivis.me/git/bootstrap-initrd.git
commit: e11b649b41302b656d64ac641cb841c38cd5fb01
parent 8a7a549b5bc276259b8cefba797620041298e371
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Mon,  6 May 2024 20:18:57 +0200

README: Add Status/Explorations/Non-Goals

Diffstat:

MREADME.md17++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md @@ -4,10 +4,21 @@ Copyright 2017 Haelwenn (lanodan) Monnier <contact@hacktivis.me> SPDX-License-Identifier: MPL-2.0 ``` -A initrd generator for Linux to bootstrap a POSIX-ish system from a reasonably small binary seed (1.2MB of binaries). -Full source bootstrap isn't intended as a goal but no further binaries than TCC and musl are allowed (enforced by [deblob](https://hacktivis.me/projects/deblob)). A possible further goal could be to try stripping out as much unreviewable code like autoconf loves to generate. +A initrd generator for Linux to bootstrap a POSIX-ish system from a reasonably small binary seed. -Status: Very early experiments, has yet to build enough to bootstrap any distro. +## Status +- [x] Small binary seed of only TCC and musl (~1.2MB of binaries, depending on the architecture), enforced by [deblob](https://hacktivis.me/projects/deblob) +- [ ] Self-replicating: Able to reassemble the initrd with Alpine apks +- [ ] Self-hosting: Able to recompile all the software used from source (including tcc and musl) +- [ ] All code involved is reviewable, this involves either replacing autoconf artifacts or running autoreconf after stripping said artifacts + +## Explorations +- Reduce the binary seed even further, without compromising on keeping the bootstrapping simple and reasonably fast +- Bootstrap a minimalist distro, for example <https://git.sr.ht/~mcf/oasis> + +## Non-Goals +- GNU Environment, there is already <https://github.com/fosslinux/live-bootstrap> for this and it's a massive effort +- Become a distro, at worst it should end up deferring to an existing ports system like <https://www.pkgsrc.org/> ## Architectures