[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How did you handle making a GNU/Linux distribution?
From: |
Leo Famulari |
Subject: |
Re: How did you handle making a GNU/Linux distribution? |
Date: |
Sat, 21 Aug 2021 17:18:15 -0400 |
On Sat, Aug 21, 2021 at 04:43:34PM +0000, Sage Gerard wrote:
> My name is Sage. I wrote a cross-platform Guix-like package manager
> called Xiden. It applies functional package management to the Racket
> ecosystem. It is also free software under the GPLv3. The source is
> available at zyrolasting/xiden on Github, pending migration to a new host.
Hi! Cool!
> I'm at the point where users are requesting a GNU/Linux distribution for
> Xiden, such that Racket is the primary language for day-to-day
> operation. I'm ignorant of the scope of work, and am unsure if I can do
> it alone. My understanding is that you had to bootstrap your entire
> toolchain and address Ken Thompson's compiler hack from a different
> angle. Is that right?
At the time that Guix was founded, it was not considered possible to
bootstrap a GNU/Linux system from source; on which OS would you perform
the first compilation? How would you bootstrap that OS? Ad infinitum.
Stage0 and mes and friends are fixing that now. [0]
So, some binary "seeds" were created, which are compiled binaries of
core tools such as GCC and binutils, and the system was based on those
seeds. And we gave instructions for reproducing these seeds; you could
use any commonly available distro as a host. Maybe that sounds icky in
2021, since the situation has improved radically, but it's how every OS
was created since decades ago [1], except that most operating systems (and
even language ecosystems) did not keep track of their seeds or give
instructions for reproducing them. So Guix was better than all the rest
from its beginning :)
https://guix.gnu.org/manual/en/html_node/Bootstrapping.html
I was not involved at that stage of Guix. I'm sure others can give more
detailed answers.
> I'd greatly appreciate learning how you all built Guix's GNU/Linux
> distribution so that I can prepare a realistic roadmap and recruit help
> where necessary. I'm bad at both of those things, but if there is any
> opportunity to collaborate on implementation details based on Xiden's
> progress, I am happy to give back.
[0] https://bootstrappable.org/
https://bootstrappable.org/projects/mes.html
https://www.gnu.org/software/mes/
Also visit the #bootstrappable channel on Libera.chat
[1] It would be interesting to know the last truly bootstrapped OS