65 comments

[ 110 ms ] story [ 1723 ms ] thread
Most Linux users have never heard of Linux, either ;)
I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.

Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called "Linux", and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.

There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called "Linux" distributions are really distributions of GNU/Linux.

Bravo for the daily Richard Stallman copypaste interjection, but you know you could at least reference the man himself? ;)

Close, but no cigar...

(comment deleted)
The whole system is GNU with Linux added? There are more non-GNU packages installed on my system than GNU ones. Really the only GNU components that most people use are glibc and coreutils. And you can replace both of them if you really want to. The init system isn't GNU, the window server isn't GNU, the window manager doesn't have to be GNU, the compiler doesn't have to be GNU.

Essentially, every single GNU package on a Linux system has a reasonable non-GNU alternative. The Linux kernel, on the other hand, doesn't exactly have a simple drop-in replacement. Moreover, it's obvious that the kernel is the most sophisticated and non-commodity software part because the GNU people never managed to deliver a working kernel.

As such, it's probably better to consider the system Linux with a little bit of GNU thrown in if you want it. And if you count android or embedded systems, a lot of Linux systems actually have absolutely no GNU software whatsoever.

Free software is good, but RMS has been a pretty terrible advocate for it. His unwelcoming, aggressive, and pedantic behavior has really hamstring GNU tools. It's no surprise to me that GNU software is being phased out (see: GCC, bash) by developers and that the GPL has largely failed as a license.

The parent is trolling.

https://www.gnu.org/gnu/incorrect-quotation.en.html

>A quotation circulates on the Internet, attributed to me, but it wasn't written by me.

The linked debunking somehow manages to be even worse:

> The version with Linux, we call “GNU/Linux.” It is OK to call it “GNU” when you want to be really short, but it is better to call it “GNU/Linux” so as to give Torvalds some credit.

> The Linux kernel, on the other hand, doesn't exactly have a simple drop-in replacement

Why do you think the kernel is harder to replace than coreutils and libc? There have been working replacements (ex. Debian/kFreeBSD), and in many systems replacing libc/coreutils is effectively impossible (having once tried this, I can tell you that swapping coreutils with busybox on Debian results in a sort of working system, but completely breaks package management, IIRC).

While the BSD userland is very high quality (unlike Linux), the kernels aren't as good as Linux. The performance is noticeably worse, many of drivers are absent, and some kernel interfaces are different. Moreover, they tend to be less flexible than Linux as well. I guarantee that it would be easier to switch to LLVM from GCC or replace glibc with musl than swap out the kernel with any BSD.
1. I don't think that's a meaningful counterpoint in this argument; busybox (intentionally) comes nowhere close to GNU's coreutils, musl tracks standards and foregoes glibc's extensions (mostly? I don't know if they've added any in the name of compatibility), and clang doesn't match gcc for sheer supported target platforms. If we're claiming that the GNU userland can be replaced, then I don't see where BSD kernel's don't count just as much.

2. That said, I also disagree that the BSD kernels are inferior. Linux is catching up to FreeBSD's network performance, but it is playing catch up. NetBSD, AFAIK, blows Linux out of the water in terms of hardware support, although it is behind on newer stuff. As to kernel interfaces, of course they're different, but I'm not convinced that that's bad. (ex. I've not used kqueue, but I'm told that it's far better than the Linux equivalent.) Now all that said, I'm happy to grant that Linux is certainly benefiting from the sheer number of devs they've got, and is a good all-arounder; less secure than OpenBSD, less portable than NetBSD, less performant than DragonFly BSD, but secure enough, portable to most hardware in wide use, and performant enough for most users. But it's not universally superior.

DragonflyBSD's performance does not beat Linux. See https://www.phoronix.com/scan.php?page=article&item=freebsd1...

In fact DragonflyBSD is slower than FreeBSD in most benchmarks. I've always been under the impression that FreeBSD is for performance (though worse than Linux), OpenBSD is security and correctness (my favorite of the bunch), NetBSD is portability, and DragonflyBSD is for experimental crazy shit (my second favorite).

If you want to run Java programs you will need glibc.
I not sure 4chan shit-posting really adds meaningfully to the discussion.
The vast majority of what runs on a modern Linux system doesn't come from GNU at all and that percentage is trending down over the years with things like LLVM making even the last few generally used core pieces replaceable. I don't think there's now anything to stop you from running a fully recognizable Linux distribution without any GNU software at all.

It was a silly argument to be getting into 10 years ago. These days it just seems like trying to take credit for other people's work. I have great respect for the GNU project and the GPL was a great invention that I use when I release stuff. Beating this dead horse just detracts from that.

The availability of alternatives does little to detract from the utility of what is actually used. Ex gcc
glibc and bash are needed to have a traditional Unix-like Linux-based system and I don't think they have any fully compatible replacements (musl and BSD sh aren't).
I think ZSH is a valid alternative to Bash.
OS X Catalina even made ZSH the default.
IIRC, not just a alternative, but a full super-set.
No, Zsh is not a full super-set of Bash.
To the extent this is true, it's because other software relies on specific features (and sometimes quirks) of bash and glibc, not because you can't have a workable Unix without them.

Which is to say - ironically, these last remaining dependencies wouldn't be there if open standards were followed more rigorously.

Ah yes, textbook "Embrace, Extend, Extinguish" strategy. Very ironic that GNU now looks like it's following this pattern (obviously unintentionally).
Alpine Linux and many other distros use musl and busybox (non GNU projects, although busybox is GPL).

And I would definitely call them Unix systems, since they run almost all the same software.

Although GCC is still a good argument, since very few distros use Clang by default, I think mostly because of the Linux kernel.

Most of the stuff in userland isn't GNU. What GNU brings to the table pales in comparison to the technical complexity of the kernel or the GUI stack. While the kernel has grown up over the years from a janky hobby project to be a sophisticated base for smartphones and supercomputers, GNU still provides a bunch of common Unix utilities from the 80s and a C standard library. Maybe it's time to recognize that they aren't pulling their weight to get top billing here.
(comment deleted)
The takeaway from the article is that GNU is a marketing term. There are some more modern tools like Guix that the developers have chosen to make part of GNU. I'm sure GNU would welcome a newer kernel or GUI stack if the authors of those projects wanted to carry the banner.
err are you forgetting about GCC or something

(also theres emacs and 50 years of bloat have led to libc and common unix utilities ending up surprisingly complicated but i digress)

Most code these days is compiled using LLVM, thanks to mobile phones.
For a very very long time, Linux could only be compiled with GC, and you could only interact with it from userland with glibc. Don't forget GNOME or GNUStep. GNOME is the default GUI, window manager, solitaire player, etc. of Ubuntu.

There's also Mastodon, which is a variant of GNU Social.

Mastodon implemented Ostatus and currently uses ActivityPub, but its not a fork of GNU Social.
https://directory.fsf.org/wiki/GNU has the list of software that the GNU project provides. While most systems that run a Linux kernel will require having many of those installed (sed, tar, grep, gzip, bash...), most of the software running on most of these computers these days will not be from the GNU project.

Many users will likely never use any GNU software directly these days, and it is increasingly possible to build systems with less and less parts from the GNU project.

It would be fantastic for the GNU project's visibility if it expanded its focus on software that would potentially be more widely used directly by humans. Where's the GNU project's alternative to Zoom? Why is Savannah so far behind GitLab? Where are the GNU apps for mobile?

> Where are the GNU apps for mobile?

I'm sure they would have issues with supporting the locked-down nature of both of the major platforms, even though both (I believe) have nothing against GPL software on their "stores" today.

> It would be fantastic for the GNU project's visibility if it expanded its focus on software that would potentially be more widely used directly by humans.

Agreed, but...

> Where's the GNU project's alternative to Zoom?

https://jami.net/ (formerly GNU Ring), I think

> Why is Savannah so far behind GitLab?

I'm inclined to agree with this, moreso as I hadn't even realized until now that it was even a thing outside being used for official GNU repos (much like how Canonical's Bazaar is technically open source but 100% only ever intended to run Canonical's ... canonical... instance).

> Where are the GNU apps for mobile?

While the sibling comment is probably correct that GNU isn't fond of supporting nonFree platforms, ex. IceCat is on F-Droid.

"Canonical's Bazaar" .. do you mean launchpad.net?
Ah, darn it, yes you're correct. Bazzar is the vcs, not the site.
The GNU project and the free software movement in general are pretty out of touch with today's computer users. The most recent billion people who joined the Internet primarily use locked-down mobile devices, not machines capable of installing "the GNU/Linux operating system" as in decades past.

The closest a new user might come to using GNU software is if a web service they connect to happens to use one in the background.

> Why is Savannah so far behind GitLab?

I'd ask that question about most of the FOSS issue trackers/devops tools. Savannah, Bugzilla, Launchpad, mailing lists and git send-email are all IMHO absolutely terrible in many ways.

The web is important, but none of those tools take discoverability on the web seriously. Countless times I've searched for a solution for an issue of mine and end up digging trough unindexed Bugzilla instances or mailing lists and find the solution hours later. Such a waste. Heavens have mercy to newcomers, when one actually has to ask for clarification or report a bug, those tools are just plain and simple disrespectful because of how they waste people's time.

The below-average UI design they all have is a whole another topic, I'm all for functional UIs but those tools don't have to be so ugly and unnecessarily difficult to use. I find the wish for more contributors silly when many sites look like they've been abandoned two decades ago.

I like this description why people should mention GNU. With "open source software" or "Linux" or "Ubuntu" there are no moral implications, nothing to stand for except that it should do the job.

But GNU is different. The idea is to emphasize sharing and freedom and community.

In a world that is driven almost only by profit margins we do well to have some ideals.

GNU has enabled Linux and Ubuntu to come to life. Without GNU there wouldn't be any Linux as we know it today.

Also Torvalds had adopted the GNU GPL (what MS called the "cancer") for the kernel. Who knows where we would be if that wouldn't have been the case.

"Free" or "libre" also have moral implications, and are relevant even when calling something "GNU" would be inaccurate.
Linux stands on the shoulders of giants back to Turing, Lovelace, Babbage and indeed beyond.
The only thing the "GNU/Linux" name is useful for is filtering out conversations with people who use it.
> Most people have never heard of GNU. Even most of the people who use the GNU system have never heard of GNU, since so many people and companies teach them to call it “Linux”. Indeed, GNU users often say they are “running Linux”, which is like saying you are “driving your carburetor” or “driving your transmission”.

Did Stallman really write this in 2006? Cars haven't had carburetors since the early 90s.

Listening to politicians debate this year has reminded me how most people's mental models of the world remain firmly stuck in the decades of their youth.
Cars with carburetors still haven't fully disappeared though.
I think stallman is only vaguely aware of anything newer than 1980.
Out of all the things to nitpick on, you choose that?
I usually refer to distributions like Debian or Fedora as GNU/Linux to distinguish them from other systems that use Linux kernel (e.g. Android). GNU defines the runtime environment, and by knowing that a system is GNU, we understand what software it is supposed to run. The kernel is mostly relevant for hardware support, the runtime defines software compatibility.

If we look deeper, we see that GNU/Linux is a C system, and I'd argue that this is the most essential characteristic ("An operating system is a collection of things that don’t fit inside a language; there shouldn’t be one” — Dan Ingalls, Design Principles Behind Smalltalk). Of course, GNU system supports many programming languages, but they all use C to interface with the system. Get familiar with non-C systems like Smalltalk or Oberon to see how programming language is essential. Also web browsers grew to become operating systems of their own (running on top of C systems for now) — the JavaScript systems.

Other users have touched on the fact that GNU makes up a very small part of the current user-land ecosystem. It seems to me that the only reason to keep GNU in the GNU/Linux title is for historical purposes, but even then I wouldn't argue for that. Why is GNU worthy of being included when referring to a Linux system in 2020? Linux, as I know it, seems to be pretty distinct from what it was before my time.
I use Gnome every single day. It's a pretty substantial part of the user experience.
I don’t - and yet I work on the same OS, writing the same code and scripts using the same tools (clang, bazel, python).

Gnome is not a defining part of a modern linux system, it is just one choice of many DEs. And a large fraction of Linux systems don’t run any DE at all.

All the servers I interact with on a daily basis are certainly not running Gnome. So desktops running the Linux kernel are GNU\Linux but servers running the Linux kernel are just...Linux?
That's funny, I have a machine over here that's running Debian with musl and busybox.

I think people are way too worried about who gets credit. If rms wanted the recognition that bad, he should have finished Hurd. Also, who started say XFree86 or X.org? I have no idea. But their software is probably a lot more important to a lot of users than gcc or even glibc is.

My comment was not about giving credit. The point is that if you know that the system is GNU, you know what software it is supposed to run, and that does not mean that it can not be compatible if it is not GNU. We can probably also use POSIX (btw, the name for the standard was suggested by RMS [1]) as the lowest common denominator, but would that also include Android?

[1] https://stallman.org/articles/posix.html

More accurate to call it “systemd/Linux” nowadays