6 ms·
The core debate here is the meaning of "operating system". The GNU project does not consider Linux to be its own operating system, because they're coming from
by jmillikin 5y ago
The core debate here is the meaning of "operating system".
The GNU project does not consider Linux to be its own operating system, because they're coming from the culture of traditional UNIX where the OS interface is libc and the kernel is an implementation detail. Direct descendents of UNIX (for example Solaris and macOS) follow this model.
The article's author, for example, writes:
GNU/Linux is a distinct operating system in the family
of operating systems which use the Linux kernel
Linux developers, and many (most?) users, consider Linux to be an operating system in and of itself. It's practical to run a custom-written userland directly on top of the Linux kernel, with no libc or GNU software present.
To someone who thinks of Linux itself as an OS, for GNU to demand co-branding is a bit like asking for the name to be Mozilla/Linux or KDE/Linux. Why should one particular vendor of userland software be treated specially?
The GNU folks are unlikely to win this because they lost the Linux distribution market share decades ago. The most popular Linux distributions are Android (non-GNU), ChromeOS (non-GNU), and a long tail of embedded appliances. Distributions built on GNU libc/coreutils, including Fedora and Ubuntu, are below the noise floor.
- jcbrand 5y agoThe fact that some Linuxes don't use GNU (Android, ChromeOS) can be used as an argument that when GNU is being used, one can (_should_ is perhaps a bit much) mention that it's GNU/Linux to clear up confusion.
- jmillikin 5y agoSome Windows machines don't have Chrome installed, does that mean those that do should be called Chrome/Windows? On a nominally "GNU/Linux" installation, Linux is the important part of the stack. GNU software is a small (and shrinking!) part of the userland. I expect this trend to continue as Clang/LLVM pushes out GCC, modern packaging replaces Debian-style dependency resolution[1], and more software moves from C/C++ toward languages that statically link their runtimes (Go, Rust). [1] Debian-style packaging, where the binaries link against a libc, is a big part of why GNU libc has been considered by some people to be part of the OS. It's not really part of Linux, but if every userland software is written in C and needs a pre-installed libc.so, then you've got to pick one. Nowadays, packaging of userland software is moving toward FlatPak/Snap/etc where dependencies are bundled. libc.so is just another (exceptionally large) dependency in that world, and GNU libc has no more claim to be part of the platform than Bionic or MUSL.
- tcmart14 5y ago> On a nominally "GNU/Linux" installation, Linux is the important part of the stack. GNU software is a small (and shrinking!) part of the userland. I expect this trend to continue as Clang/LLVM pushes out GCC, modern packaging replaces Debian-style dependency resolution[1], and more software moves from C/C++ toward languages that statically link their runtimes (Go, Rust). If your getting the userland code from GNU (as is the case with Debian, Fedora, Ubuntu, Arch, Gentoo, etc....), but compiling it with Clang/LLVM, it is still GNU code written by the GNU project. GNU makes up pretty much the entire linux userland on most distributions with the exceptions being distros like Alpine or distros that use BusyBox userland utilities. NetBSD maintains their own userland utilities, they are not written by GNU. But they are compiled with GCC, does not make them GNU userland utilities.
- jmillikin 5y agoAll of the GNU code on my Ubuntu machine fits in maybe ~100 MB, which is less than any of a dozen non-GNU applications I use day-to-day. It's just not an important part of the userland any more. The world has moved on to GUI tools, of which GNU has only a few (GIMP + whatever parts of Gnome are official GNU).
- tcmart14 5y agoUbuntu's biggest use case is more than likely a server accessed by a user of SSH. I use linux and love it, but desktop usage is a small portion of Linux's actual use. Those GNU core-utils userland utilites are an integral part in administering remote machines which makes up the vast majority of the use case. I'll even defer to Debian's about page, which is where Ubuntu is derived from. "A large part of the basic tools that fill out the operating system come from the GNU project; hence the names: GNU/Linux, GNU/kFreeBSD, and GNU/Hurd. These tools are also free." [1] [1] https://www.debian.org/intro/about https://www.debian.org/intro/about
- jmillikin 5y agoLooking at one of my remote servers running Debian Buster, it has about the same amount of GNU stuff on it (~100 MB) and most of that is semi-obsolete tooling that, again, just isn't necessary day-to-day. I could probably purge ~all of it without loss of functionality. I log in with OpenSSH, which listens on a Wireguard interface. The shell is whatever generic Bourne-alike Debian uses (Ash? Dash?). The administrative tools are all written in Go since they're a mix of contemporary projects (containerd) and my own administrative agents. Primary editor is vim. There's the basic tools (mv, cp) but those could just as easily be supplied by Busybox, which is installed. It's difficult for me to imagine what sort of server would run GNU software as a majority of its workload, or even just the UX control surfaces. The GNU project has always had a strong emphasis on re-creating the UNIX interfaces of yesteryear, and modern sysadmin practices don't include running m4 or gcc in the same machine that's going to serve traffic.
- EdwardDiego 5y agoOr, clear up confusion by not calling Android and ChromeOS Linux? Call them Linux based, or Linux derived. From my own POV, when someone says Linux, I think of the distros that are by and large compatible, distro packaging formats aside. E.g., when installing Slack by downloading a tar.gz and unpacking it I've never had to worry about it working or not, but then I was doing so on Ubuntu / Arch / Pop!_OS / Fedora. While I've used Alpine for containers in the past, I was always aware that Alpine was deliberately special and different to be smaller, and because there's a lot of people who dislike , and that if something wasn't available via apk, then I had little I guess this is like the debate about the drift of the word "literally" to mean "I'm dramatically exaggerating" - there's the people who insist that "literally" has a meaning, and only that meaning, and anyone using it for anything else is wrong, then there's the people who think that how people use a word defines it. I get the annoyance of the people annoyed by the complete inversion of the word, but I feel like they're like the mythological Canute opposing the tide. So long as I understand what people are saying when they say Linux, I'm happy - and I've never met anyone who uses "Linux" when referring to Alpine or Android. They always specify that it's Alpine in their container, because Alpine is sufficiently different. Likewise, if someone told you they had a Linux phone, would you think that they're using Android? I wouldn't, I'd think that they had a PinePhone, or something running PureOS. I realised this debate had name, so googled it, and it's referred to as the the prescriptivist vs descriptivist debate. I guess I'm on the descriptivist side - unless your descriptive usage is wrong, of course. If you referred to Alpine solely as Linux, but then I couldn't use software on it that I can use on many other Linuxes without recompiling, I'd be a tad miffed.
- Scarblac 5y agoYes, you can run a Linux kernel with a different user land. But we don't call the result Linux - we call it Android, or ChromeOS, etc. So your comment is an argument against referring to GNU / Linux as just Linux.
- rascul 5y agoAlpine is still called Linux.
- captainmuon 5y agoI think most people colloquially consider "linux" to mean the whole system, and "linux kernel" to mean git.kernel.org. A distribution is a "linux" with a package manager that you can install on a system, so I would not say Android is a "linux distribution", although of course it distributes the Linux kernel. Debian is clearly a "linux distribution", so you can have fun things where you replace the Linux kernel with GNU Herd (I'm not sure how viable that is, but there is a project), and you get a "linux distribution but without Linux".
- jmillikin 5y agoFor 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.
- DyslexicAtheist 5y ago> most people colloquially consider "linux" to mean the whole system anyone outside Tech says to me: "hey what is this software you have on your computer. It doesn't look anything like windows or mac". Guess what my answer is? Hint: It's never "that's GNU/Linux" because that answer would be over their heads. If I say "that's Linux" most people without any idea will at least have heard the term. And for discussions with a Tech crowd it is silly to state the obvious. Why waste people's time to point out that my OS has also gnu tools installed as if they don't already know that. It almost looks like virtue signalling because there literally is no other point. Also extra typing that I could dedicate to more useful adjectives to color out my point.
- legalcorrection 5y ago>Distributions built on GNU libc/coreutils, including Fedora and Ubuntu, are below the noise floor. This is not true if you consider the server market. Almost all the Linux machines and virtual machines are running the glibc and gnu toolchain. I know that there's alternatives like musl-based distributions, but that's kind of fringe. In any case, I'm not a "GNU/Linux" promoter. Though I can sympathize with Stallman feeling a little cheated on the naming stuff, especially in the early days when GNU tools were the bulk of the userland. But nowadays, the only strong part of their claim is glibc and the compiler toolchain. The real reason why GNU has floundered as an organization is that they (and Stallman in particular) are rigidly ideological and difficult to work with.
- jmillikin 5y agoYou might be surprised. What you say was definitely true ten years ago, or maybe even five, but the adoption of containers has changed things a lot. A container-oriented VM host can boot with a handful of binaries designed to receive scheduled workloads and nothing else. The root filesystem is read-only. Go is a popular implementation language for this stack (look at containerd or kubelet), so no libc. SSH is OpenSSH, shell and init and such are Busybox or similar. The scheduled containers might contain GNU code if they're using a Debian chroot as a base filesystem, but even that's becoming less popular because it introduces questions of package updates and reproducibility. The container might itself contain just a statically linked binary (Go, Rust, or C/C++ with MUSL) plus its data files. Right now this approach hasn't filtered down to the hobbyist area yet (except among current or former FAANG employees), but I think in 5 or 10 years it'll be the standard (unless a wildcard like Fuchsia or Oxide's Hubris takes over).
- legalcorrection 5y agoAll very interesting. I just want to say that I strongly doubt that non-libc or musl based environments will take over on linux servers anytime soon. Perhaps for narrow use cases, like as you mention, a vm host that only needs to run one binary.
- 5y ago
- iso1210 5y ago"Linux" typically refers to a standard Linux distriubtion, Debian Linux, Redhat Linux, or even subsets of those like Raspbian. They containing the core element (Linux) and a bunch of stuff on top (often things like X for example) For Linux without the GNU people typically say "Android" or "ChromeOS". However calling it GNU Linux is about as sensible as calling it Systemd Linux
- seba_dos1 5y agoDebian's name is "Debian GNU/Linux" though, I don't think anyone refers to it as "Debian Linux".
- yakubin 5y agoI think that GNU/Linux is a valuable distinction due to the significance of libc. Alpine keeps uncovering how applications rely on GNU-isms and there seems to be no end to those issues. libc, however anemic, makes a huge difference it seems. Maybe it should be "glibc/Linux" rather than "GNU/Linux"? However from the Linux desktop end user's point of view, whether a system is glibc-based, or musl-based is less directly significant than whether it is Gnome or KDE-based; alternatively, whether it's systemd or OpenRC or runit-based. So if GNU wants some clout for glibc, then in fairness the name starts to sound more like "GNU/systemd/KDE/Linux" at which point it sounds ridiculous. And for all those components the famous "I'd like to interject for a moment" makes equal sense as for GNU. I frequently work with busybox-based systems and they're not nearly as different from GNU/Linux as KDE is different from Gnome.
- lnxg33k1 5y agoI think to reply to what you said about why a vendor should be treated specially compared to Gnome/Linux Mozilla/Linux or KDE/Linux is that (and I don't really say that this is correct), you can see and credit Mozilla/KDE/Gnome as something that the users see and interact with and are aware of their contribution, but maybe the GNU userland and especially the glibc is so implied that maybe it's fair to make sure that people are aware of the contributions of GNU in the userland by having it in the name? And I think it's kinda fair, there is work that is very important and vital to the system or at least has been, that has received free efforts, that maybe being so buried down in the system might never be noticed, that maybe it's fair to have it in the name?