3 ms·
For a long time there was only one or two of each core component in the "hobbyist free-software" space. One kernel (Linux), one libc (GNU libc), one compiler to
by jmillikin 5y ago
For a long time there was only one or two of each core component in the "hobbyist free-software" space. One kernel (Linux), one libc (GNU libc), one compiler toolchain (GNU GCC + binutils).
Something similar to the "singleton" problem happened, where too many 1:1 layers caused folks to get confused about what each one was. Does an "operating system" mean the kernel? The kernel and libc? Doesn't matter, there's only one of each.
Then the options started expanding. More libc implementations were written for Linux. The GNU libc was ported to FreeBSD's kernel, so now Debian was simultaneously a Linux distribution and a sort of GNU overlay for FreeBSD.
It's time to start using clearer terminology, or we'll never be able to communicate about the actual state of the world. The current state of things seems to be:
* Linux is a kernel, and also an operating system, in and of itself.
* FreeBSD is an operating system, consisting of the FreeBSD kernel, libc, and userland. The FreeBSD project considers the FreeBSD libc to be part of the OS.
* GNU Hurd is (will be?) an operating system, consisting of the Hurd kernel, GNU libc, and GNU userland.
I think you could make an argument that "Linux operating system" and "GNU/Linux operating system" should be distinct, but it's not clear that this would be good for GNU, because that would mean GNU/Linux has ~0.01% of the installed base of Linux.