commit: 2dc9672700aba34c3c6bb3b4f97c89ccc5071e80
parent e58b59fd0397b4bf420ff7cd2d0c6fa7711126e4
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date: Sun, 28 Apr 2024 01:52:08 +0200
README.md: Add notes about comparisons with others
Diffstat:
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
@@ -9,6 +9,8 @@ A initrd generator for Linux to bootstrap a POSIX-ish system from a reasonably s
Status: Very early experiments, doesn't yet builds everything, generator very likely doesn't runs on your machine.
## Rationales
+Each of those roughly by their build order.
+
### TCC (binary)
Need to start somewhere and TCC allows to interpret C, allowing to avoid seeding another interpreter.
The reason to not pick Guile+MesCC instead is because I find Guile Scheme to be less well-known than amd64 itself.
@@ -20,23 +22,34 @@ Need a libc to start somewhere, tryhards could maybe compile it from source with
Temporary workaround to mrsh lack of working interactivity in the console (Due to some missing TTY initialization?).
### mrsh
-emersion POSIX shell, somewhat incomplete but buildable with only a C Compiler.
+emersion POSIX shell, somewhat incomplete but buildable with only a C Compiler.
+Meanwhile:
+- heirloom-sh: Also buildable with only a C Compiler but fails to allocate memory at launch
+- bash, yash: autoconf, so needs an existing shell
+- dash: autoconf and generator scripts, so needs an existing shell
+- mksh: ./Build.sh, so needs an existing shell
+- AT&T ksh: Way too big to even try, might as well try Perl
### yacc
The reference implementation of yacc, only needs a C Compiler to build. (Unlike byacc and bison)
### utils-std
-My own software, which explicitly allows to bootstrap with an incomplete POSIX environment.
+My own software, which explicitly allows to bootstrap with an incomplete POSIX environment such as this one.
+Meanwhile:
+- GNU coreutils: Autoconf, therefore needs the utilities it's building plus some extras to already be available
+- Busybox and Toybox: Heavy dependency on make, which can only come much later on in the bootstrapping process
### minised
Incomplete implementation of `sed(1)` (notably missing `-i`), but has minimal dependencies.
-Likely to be replaced with a `sed(1)` from a \*BSD.
+Likely to be replaced with a `sed(1)` from a \*BSD.
+Meanwhile:
+- GNU sed: autoconf, which requires `sed` among other thingsā¦
### (One True) awk
-Reference implementation and AFAIK the one used in BSDs.
+Reference implementation and AFAIK the one used in BSDs, can be built with only a Yacc implementation and a C Compiler.
### bmake
-NetBSD make made portable, uses an autotools configure script but much simpler than the GNU Make one.
+NetBSD make(1) made portable, uses an autotools configure script but much simpler than the GNU Make one.
## Launching in QEMU
```