[citation needed]
I want you to take a look at your package manager, dudeski. I don't care what
GNU/Linux operating system you're using, it's the came. Look for a package
called "libc6", or "libc", or "glibc". This is the GNU C Library (glibc).
There's a history behind the name: once upon a time, the Linux developers
used glibc, but then they decided it wasn't good enough, so the Linux
developers made a fork of glibc called "Linux libc". Later, glibc 2.0 was
released, and it was better than Linux libc, development of Linux libc
stopped, and operating systems that were using Linux libc renamed glibc to
libc.so.6.
In short, all GNU/Linux systems have used either glibc or a variant of glibc,
and today they all use glibc. So what does this mean? It means that they're
binary-compatible. If you replaced glibc with an entirely different C
library, all of those binaries which are claimed to be "Linux" binaries would
stop working. They aren't just "Linux" binaries; they're GNU/Linux binaries.
They only work on GNU/Linux systems. They aren't going to work on Android any
more than they are going to work on GNU/Hurd systems.
Next, I want you to look for a package called "coreutils". This is the GNU
Core Utilities. It provides all basic commands including (among others) cat,
chmod, chown, cp, dd, echo, ls, ln, mkdir, mv, rm, rmdir, and uname. Unlike
glibc, this one can theoretically be replaced, but it isn't; this is where
you're getting all the basic utilities. You can't use the system without
these basic utilities. Even if you never use the command line, other programs
make use of these utilities for you.
Next, I want you to look for a package called "bash". This is the GNU Bourne
Again SHell. This is the interpreter that allows you to use the command line
and run shell scripts. Like coreutils, this can be theoretically replaced,
but it isn't. Also like coreutils, you can't just remove Bash and expect your
system to work. Nothing will work with out a shell script interpreter.
To recap: glibc, coreutils, and Bash are ESSENTIAL to making your system
work. glibc can't even theoretically be replaced with something else; that
would give you a completely different POSIX system, not binary-compatible
with GNU/Linux systems. coreutils and Bash could theoretically be replaced
with another collection of core POSIX utilities and another shell script
interpreter, but everyone uses these because they're the best.
But that's not even all there is to it. Search these packages: ed, nano,
gimp, gnuchess, gnupg (or gpg), gzip, parted, and tar. Chances are, many of
these non-essential programs exist on your GNU/Linux system. ed and nano are
basic command-line editors. The GIMP is a very popular image editing program.
gnuchess is used as a backend for many chess games. GPG is a commonly-used
implementation of PGP. gzip is not only the program most commonly used to
compress in and uncompress from the Gzip (.gz) format, but it is where that
format comes from. tar, or a replacement, is needed to extract and archive
Tar files. parted is the backend to GParted (which itself is part of the GNU
project, by being part of GNOME).
So a final recap: not only is GNU essential to all GNU/Linux systems, not
completely replaceable even if someone is interested in doing all the
unnecessary work required to replace it, there are also a bunch of very
popular GNU programs in use in just about every GNU/Linux system.
Saying "gnu tools are just a small part of the userland today" is
preposterous. GNU is important, at least as important as if not more
important than Linux.