5 ms·
Bootstrap a Linux system from a 512 byte binary seed with 170 steps
- RicoElectrico 2y agoThis is madness. I love it.
- 0cf8612b2e1e 2y agoPretty amusing/scary/insane the number of times you see a chain of languages (automake, perl, python, etc) where you need version X-1 to compile X. The dangers of dog fooding new features into the core tooling. Which is how I think Rust works? So to bootstrap Rust requires building every version since the language was self hosted.
- SushiHippie 2y agoThere is also mrustc [0] which can bootstrap rust 1.54.0 and then you can continue from there. [0] https://github.com/thepowersgang/mrustc https://github.com/thepowersgang/mrustc
- yencabulator 2y agoSee also https://notgull.net/announcing-dozer/ https://notgull.net/announcing-dozer/ -- removes C++ and LLVM from the stack needed to bootstrap Rust.
- chuckadams 2y agoThat’s to be expected with any bootstrapped language. What’s insane is how relatively recent a version some of the GNU tools depend on, with one version in there depending on itself! I think it’d be a good policy for any bootstrapped tool or language’s build to depend on no later than the last released previous major version. Intermediate bootstrap levels (e.g. miniperl) are fine, as long as one can start from the previous major.
- teddyh 2y agoI thought <https://guix.gnu.org/en/blog/2023/the-full-source-bootstrap-building-from-source-all-the-way-down/ https://guix.gnu.org/en/blog/2023/the-full-source-bootstrap-...> was more interesting.
- pabs3 2y agoThe Guix bootstrap is based on the stuff from live-bootstrap.
- rekado 2y agoI think stating it this way gets the history backwards. The live bootstrap came about as a separate implementation of what had been done for Guix earlier. It then became a proving ground for new ideas, which then fed back into Guix.
- deleted 2y ago[deleted]
- bcrl 2y agoIt was quite educational to completely rebuild an i386 system during the a.out to ELF transition. Definitely a worthwhile exercise to learn all the autotools madness that underlies most of the Linux toolchain, but far easier than bootstrapping from nothing. During both ia64 and amd64 bring up we were lucky enough to have emulators that allowed running new 64 bit binaries on existing 32 bit machines. qemu fills that niche today, making life easier for anyone that wants to build an entirely new architecture from scratch. Standing on the shoulders of giants...