@lanodan You call systems like GNU+Linux "*/Linux." But that technically includes Android and embedded systems. Isn't it better to write "GNU+Linux" instead, perhaps mentioning Alpine seperately? Android would be something like Android+Linux or whatever.
I do wonder if someone has ever tried porting Android to Hurd or a BSD kernel.
@cyberspook In fact if you want to see why "GNU+Linux" is useless. PostmarketOS (Alpine-based) isn't really GNU, and it's one of the best Unix-style mobile operating system out there.
Man, the article do be kinda salty in the beginning. Especially with the author calling Stallman’s fans “fossbros.” Anyway, to the actual arguments.
…non-Systemd distributions must patch them to run without Systemd.
Well, there are many other things to patch in Linux-based systems:
Wayland support
Package manager support (KHE-KHEM, NixOS, KHE-KHEM)
C library support
audio support (other than PulseAudio there are also sndio and PipeWire)
backports
and other things
Anyway, all of this is irrelevant because the argument is not for calling it systemd+Linux but for calling it Linux. Which is flawed by default. At minimum what would make sense is calling it a “Linux-based Unix-like.” Which isn’t exactly a name. More like a vague discription.
GNU is irrelevant in the picture, I know I can get rid of it (GNU being ship-of-thesus replacements to existing Unix components in the first place), show it to someone else and it would be pretty much the same thing. With differences that are quite less than changing of desktop environment.
The only time ever you'll see me use "gnu" and "linux" together is for portability issues like with proprietary software, ie. steam targets x86-pc-linux-gnu
“I use GNU+Linux as my operating system,” I state proudly to the well-dressed, clean-shaven woman. She swivels around in her desk chair with a devilish gleam in her eyes, ready to womansplain with extreme precision. “Actually”, she says with a grin, “I use Alpine, a distro that doesn’t include the GNU Coreutils, or any other GNU code. It’s Linux, but it’s not GNU+Linux.’ I don’t miss a beat and reply with a smirk, “There are complete systems that contain Linux and not GNU; Android is an example. But it is a mistake to call them ‘Linux’ systems, just as it is a mistake to call GNU a ‘Linux’ system.“
The smile quickly drops from the woman’s face. Her body begins convulsing and she foams at the mouth and drops to the floor with a sickly thud. As she writhes around she screams “I-IT WORKS WITH SYSTEMD! THAT MEANS IT’S STILL LINUX!” Coolly, I reply “If Windows worked with SystemD, would that make it Linux?” I interrupt her response with “-and work is being made on the software to make it more init-agnostic. Even if you were correct, you won’t be for long.”
With a sickly wheeze, the last of the woman’s life is ejected from her body. She lies on the floor, cold and limp. I’ve mansplained her to death.
"made for GNU" is whatever you misunderstand as "made for Linux", really. because programs hardly ever interact with the kernel, they interact with the userland core of the operating system (e.g. the interfaces specified by POSIX), and that's historically GNU. that's what programs have been written for, even if they're then ported to other GNU-like Unix-like systems. you can probably find and name exceptions to that normal path here and there, but that's what they are: exceptions to the rule.
And I don't find the default/base utilities to be much defining. Otherwise MacOS and Oracle Solaris are GNU systems and I don't think anyone would want to say that.
@lanodan I think it kinda goes into that BSD territory. Unless its overall infrastructure is made for GNU. Like the init systems and Wayland (when will they port it to OpenBSD?).
@cyberspook Why would you want to exclude Chimera? To me it's pretty much the same as Alpine, just FreeBSD utils instead of BusyBox and more strongly non-GNU (not a goal of Alpine, as much as internet memes would do).
@lanodan You must understand that I say "GNU+Linux" because there is no better alternative. Core utilities, init systems, that's all replaceable. Saying that it's all Unix-like includes BSDs and misses the intricacies of GNU+Linux like, again, the init systems written for it. Linux-based Unix-likes? That's better. But then it includes stuff like Chimera Linux. So what are we gonna do about it? All this stuff was clearly written with GNU in mind (or whatever it mutated into over the years with SystemD and Wayland and all other things).
@lanodan To be clear, I would. If I ported just about everything else, including the init system or what have you. Same with Termux, it adds all this software on top of Android to even run software written for GNU+Linux. The APT package manager is not Android's package manager. It's Debian's package manager. It's like you make a sandwitch by putting an operating system on top of another operating system.
Alpine's userland is replacing the dependencies of GNU packages, the same way Stallman was replacing the dependencies of Unix packages. Simple as that. Sure, you can do the same with Android. And perhaps one can make a complete Unix-like Bionic+Linux system with Wayland and all that. But I haven't seen one, all of this usually runs on top of Android packages. It runs natively. Very well, that's fair. But these utilities are not what Android depends on. If I ported the coreutils to BSD, would that make it GNU? No, not really. I still won't be able to run software made for GNU+Linux.
Well, even if it's not a 1:1 clone, it still is GNU-like (nobody uses this word but eh). Again, the reason why it works with GNU+Linux software is because it has ported the dependencies of said software. Including OpenRC. OpenRC was already used on Gentoo before that.
musl takes the POSIX standard, plus the typically well documented BSD extensions.
BusyBox? I can't say as much but it's pretty damn far from being a GNU clone, most of what is has are grossly incomplete. Hence why some *-linux-musl distros take utilities from FreeBSD.
Very well, it is not. But my point about it being a GNU clone still stands.
Again, unlike in the world of proprietary jails, in the world of libre software you can just recompile the software for specific dependencies. That's how GNU was ported to Linux. Again, before that it worked on Unix. It had to be rewritten for Linux specifically because Linux is not the same as, say, a FreeBSD kernel. In fact, if Linux did not exist, GNU software would probably have been ported to the FreeBSD kernel. Is it a better universe? Maybe. Maybe… BUT IT'S TOO LATE.
If Windows was libre, it would be Windows' Alpine. The only reason Alpine is binary-compatible with GNU+Linux is that GNU+Linux is libre. Otherwise it would be in an eternal alpha like ReactOS is.
Again, GNU is an operating system. GNU utilities are utilities. You can port them wherever you want. Doesn't mean that all the software will suddenly get ported with it.
GNU is colloquially all the software that runs on top of Linux and glibc. Because it's an entire string of dependencies. You may argue that all this also works on musl. I'd argpe that it doesn't, the work is still going on, and even if it did, the whole system (musl+Linux) would be more like a GNU clone. The same way GNU is a Unix clone. Stallman wrote the GNU software to replace Unix. Before Linux came along, all this software worked with Unix. So it's complicated.
I'm not going to claim that Linux with musl is necessarily GNU+Linux but it's at least GNU-compatible. Again. Windows worked with DOS software. It still does, the cmd is a remnant of DOS. The main question is the border between an original and a clone.
@cyberspook Nah, you can put GNU utilities on Android natively, I did that many years ago because Termux didn't exist yet. (And I basically switched to SailfishOS when termux appeared)
libhybris being in the same level of disgusting as ndiswrapper. GNU also typically means GNU specific extensions that aren't documented well enough to write alternative implementations, so pretty much vendor-locking.
So GNU+Linux is my Windows, happy? Please, just don't.
@cyberspook Debian kFreeBSD is more like "Debian with FreeBSD kernel and base system", to be honest I'm not sure why they added GNU in the name as I don't think it has more GNU than FreeBSD proper.
And the difference between C libraries is very shallow, the only reason why musl and glibc can be seen as different is because they're so extreme in their design that some portable programs that work with all other libc can have some issues. (be it with musl or glibc)
GNU libc is quite too ressource-hungry for embeddeds, has a lot of GNU-specific extensions. And compared to all other libc it doesn't doesn't have actual support for static linking. musl is lightweight and is quite strictly POSIX.
Much difference, wow.
> Android can't run GNU software natively anyway. It needs a compatibility layer. Like Termux.
Termux isn't a compatibility layer, it's terminal + package manager + optional chroot. GNU utilities are running natively on android, it's not anywhere close to something like wine.
This argument is very flawed because it assumes that the presence of GNU software is what makes GNU GNU. Imagine you have GNU+Hurd. And you replace 99% of its components with non-GNU ones. Is it suddenly not GNU? Or is it a "Hurd distribution?"
Let's go deeper. The BSD userland can be combined with Linux. Is it suddenly Linux? No, it does not work like desktop Linux-based systems at all. It works like a BSD. What about GNU+kFreeBSD? Is it suddenly FreeBSD?
As long as a userland is tied to some crucial component, it is a seperate OS. In BSDs and GNU+Linux it is the C library. If you have a C library, everything is tied and locked to it basically. Except filesystems. But you can have these filesystems on Android also. It just needs to load the correct kernel modules.
Android can't run GNU software natively anyway. It needs a compatibility layer. Like Termux.