Subject: Re: bug#25254: [minor] 'About' page says GuixSD is a "GNU/Linux distribution"

From: [email-masked] (Taylan Ulrich Bayırlı/Kammer)
Date: Sun, 25 Dec 2016 20:35:33 +0100

David Craven <[email-masked]> writes:

> Please change to the GNU distribution. Or alternatively if you are
> going to say a GNU distribution provide a link to or an explanation of
> what it means.

I wanted to avoid a larger discussion, but OK, I haven't ever written a
comprehensive answer to such a question, so here goes.  I can link
people to it in the future...

An operating system is a software system that manages hardware and
software resources to offer a platform for end-user applications to
operate on.  For instance OpenBSD is an operating system, but GNU IceCat
is not.  (See Wikipedia for details.)

If an operating system consists of components developed by the GNU
project, then that's the GNU operating system.  This should be pretty
obvious. :-)

GNU operating system components include, among others:
- the GNU toolchain: GCC, Autotools (Autoconf, Automake, Libtool), GNU
  Make, binutils, Bison, GNU m4, GDB
- GRUB
- Hurd
- glibc
- the GNU userland: Bash, coreutils, findutils, diffutils, inetutils,
  GNU grep, GNU awk, GNU tar, etc.

The Hurd is not nearly as functional as one would like a production
level kernel to be, so the Linux kernel is frequently used in its place.
Whether the operating system is then still the GNU operating system just
with a part replacement, or whether it becomes a different one, is a
matter of semantics.

The Linux kernel is quite large, brings with itself a collection of
userland tools, and is relied on directly by a lot of end-user
applications instead of being encapsulated away entirely by the rest of
the operating system, so I think it's fair to call an operating system
GNU/Linux when the Linux kernel is used instead of the Hurd.

Complicating matters a bit, the Linux-libre project, while merely
maintaining a modified Linux kernel, is a GNU project as well, so it
could be debated whether the last paragraph does or doesn't apply when
the operating system uses the Linux-libre kernel.

Regardless of what one thinks about the last three paragraphs, the
intent of GuixSD as a project is to provide a distribution of the GNU
operating system.  This means that replacing tools like GCC or glibc is
unthinkable, whereas compatibility with the Hurd could be said to be a
relatively high-level concern of the project, and Linux-libre is used
for pragmatic purposes.  Contrast this with the majority of GNU/Linux
distributions whose main developers don't care about Hurd compatibility
at all.  (Off-shoot projects like ArchHurd exist, and their patches may
be accepted upstream, but they are just side projects.)

For these reasons, it makes sense to call GuixSD a distribution of the
GNU operating system, which for now offers by default an installation
using the Linux-libre kernel, as that is more pragmatic.

Disclaimer: I cannot speak for the Guix project leaders, but as far as I
understand their views are more or less like what I describe in the
previous two paragraphs, which is why the project homepage says that
GuixSD is a distribution of the GNU operating system.

> Calling it a GNU distribution implies that there are more than one,
> please provide an example of another GNU distribution.  A google
> search for GNU distribution doesn't turn up any results.

Perhaps ArchHurd or Debian GNU/Hurd may be considered GNU distributions.
Even if there are no other distributions of GNU though, that doesn't
mean GuixSD can't be one.

> Please also remove it from the list of GNU/Linux distributions here:
> https://www.gnu.org/distros/free-distros.en.html

I was rather thinking of having that page corrected to say that it's a
list of GNU and GNU/Linux distributions. :-)

Taylan