"gnu/linux"
there are some people on the internet that insist linux be referred to as “gnu/linux” or “gnu+linux”, and of course we’ve all heard the very funny meme about interjecting that is definitely not getting incredibly old. the case for this naming comes from the belief spread by primarily richard stallman that linux is only a small component of a “complete gnu system”. i frankly believe this to be completely bullshit and in this post i’m gonna mostly incoherently ramble about why. while yes it is true that linux is only a kernel and not a full operating system, that’s exactly what a linux distribution fills the role of. a distro takes the kernel and makes it a fully functional operating system by a normal person. the key here is that a distro creator can do this in any way they wish, and nothing about linux specifically mandates it be paired with any gnu software. here are some examples:
alpine linux
alpine is the most commonly used example of a gnu-less linux. it uses musl instead of glibc, it uses busybox instead of gnu coreutils, and it doesn’t even use systemd or sudo, it uses openrc and doas. all of this was done in the name of size, of course, since alpine’s selling point is it’s minimalism and security, and it’s commonly used in containters and other thin situations. you are welcome to install the coreutils if you prefer, though. but alpine is not alone!
chimera linux
chimera linux, not chimeraos. i’m not talking about the slop gaming distro. anyway, chimera’s entire identity is revolved around it being more bsd-like and less gnu. musl instead of glibc, llvm/clang instead of gcc, freebsd userland instead of coreutils, even dinit instead of systemd and doas instead of sudo. calling this gnu/linux would probably piss off the developers, and rightfully so, because it’s just wrong.
basically every embedded linux ever
gnu is huge and thus not applicable for situations where linux needs to be really small. in MOST of these applications, busybox is used, since there doesn’t really need to be much of a userland, and i’ve even seen handrolled init systems to get the size really down.
android
regardless of android’s actual implementation of the linux kernel, it is still linux, and as far as i know it implements exactly zero gnu software. the entire userland is java and it doesn’t even use glibc. ironically, these are reasons people give for android “not” being linux, but actually they’re reasons for android not being gnu. android is very much linux, but it’s very much not gnu.
but gnu is such a commonly expected component of linux!
yeah, so are a lot of things. like systemd. should we call it systemd/gnu/linux? i mean, people have been meming about linux just being the systemd os for years. pipewire is basically universal at this point, too. what about wayland, or x? what about anything freedesktop or xdg? does an commonly used component in an operating system warrant its inclusion in the name? i don’t think so.
gnu/linux is also sometimes correct
there are some distros that self-identify as “gnu/linux”. debian is officially called “debian gnu/linux”, devuan is “devuan gnu+linux”, parabola is “gnu/linux-libre”, and honestly all of these projects have the right to refer to themselves as such because they do extensively employ gnu and as far as i know there’s no official way to separate gnu from them. it’s literally only correct to refer to linux as “gnu/linux” or “gnu+linux” if you’re specifically talking about linuxes that do use gnu, which is not all of them.
tl;dr
there’s plenty of credit to give rms, and plenty of reasons to not like him, but making linux what it is isn’t one of them. he acts like linux is just like 5% of a “gnu system”, but is the gnu system in the room with us right now? linux works just fine without it and collectively referring to linux as gnu is not only wrong but it’s kind of insulting.
























































































