A Reason to Call it GNU/Linux

2024-07-31, 13:47:12

Linux isn't very Unix-like by itself. Of course, it's a Unix-like kernel, and it does Unix-compatible file operations, process management, and system calls, but without the GNU suite or some other userland, it is just a kernel which doesn't have to be used as a Unix-like one.

Linux is Unix-like, but not all OSes which contain Linux take advantage of that.

Android basically uses Linux like a fancy bootloader. The only thing that runs there is toybox, which technically are Unix utilities, but the user can't interact with them, and a JVM. Everything the user does is done in Java.

In Android, if you only consider the actual platform that is used for making software, that platform is Java, not Unix. No matter how hard you try, Android isn't designed to run Unix packages natively. Of course it can, but that doesn't make it Unix-like, since the intended way to run applications is in Java.

Calling an OS by its kernel is wrong; the kernel doesn't determine the nature of the OS. We don't call Windows "NT" or MacOS "Darwin".

If you call GNU/Linux "Linux", why not call Android "Linux" as well? They're not compatible with each other, but technically the name Linux works for both according to your logic.

GNU/Linux means just that: GNU on the Linux kernel. There is a GNU kernel as well, the Hurd, but most commonly we substitute it with Linux. There used to be Debian GNU/kFreeBSD, which used the FreeBSD kernel, and there is GNU/Darwin, and GNU/Hurd, and so on. They didn't invent a name for that combination, but it still doesn't deserve to be named after its kernel. GNU/Linux is more compatible with GNU/Hurd or NetBSD (even without GNU) than with Android, Tizen, ChromeOS or whatever else happens to contain Linux and use it but don't take advantage of its Unix-like nature.

The fact that Android can run GNU/Linux in chroot doesn't mean anything; the core system is not GNU; but the kernel still knows how to run GNU software so it will run it. But that doesn't make Android GNU/Linux; it would be like saying your machine is Debian when it's actually OpenSUSE and you have a Debian chroot.

If someone made a system with the Windows NT kernel but not the Windows userland and GUI, would you still call that Windows? No; it is NT but that doesn't mean it's Windows, as it doesn't have what makes Windows run Windows software.

Obligatory copypasta:

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!