No one understands Linux
Because of Microsoft’s worsening anti-user behavior, we are currently observing a surge in interest in the GNU/Linux desktop. GNU/Linux has always been a great platform for desktop users, but it suffered a lot of misconceptions regarding its support. With recent innovations such as Proton (for gamers), WinApps (for proprietary software users), and flatpaks (for those uninterested in the terminal), there is less and less reason to stick with proprietary operating systems. Even hardware support is becoming less of a reason with open source video drivers like nouveau becoming increasingly complete and proprietary hardware vendors constantly improving support for GNU/Linux.
Other than software and hardware support concerns, GNU/Linux has also suffered the misconception of complexity. Users have long worried that GNU/Linux is too complex for them, with the terminal scaring most. This complexity they refer to is actually a metric for how much can you depend on the user interface; the more you can do things from the GUI, the less complex it is. It is true that a long time ago, certain tasks considered essential were not exposed in the user interface of most GNU/Linux desktop environments (e.g. setting up a printer through CUPS), but this has also come to pass, and now most desktop environments are providing of everything the average user could possibly need. The idea that you will have to use the terminal at some point simply no longer holds true for the majority of big, corporate-backed GNU/Linux distributions like Fedora and Ubuntu.
A lot of people increasingly disappointed with Microsoft’s bullshit have come to understand that the GNU/Linux ecosystem is no longer as complex and time-consuming as it used to be. Therefore, they have been looking to switch. This has resulted in a lot of questions being posted to the Internet, especially regarding the choice of distribution. I admit, there are a lot, and users habituated to picking a version of their operating system instead of a distribution may get confused, but I see a lot of new misconceptions about what a distribution is and people’s understanding of Linux as an operating system. While they are an improvement to the previous misconceptions that Linux sucks for the average non-power user, they are still problematic because it leads to wasting time switching between distributions that are mostly the same.
First, almost all distributions are the same operating system.
Linux is the kernel. It is the engine of the operating system, but it isn’t the whole operating system. GNU/Linux is the composite of the Linux kernel with some basic system utilities, the GNU userland, that are found in the majority of Linux distributions (excluding outliers like Alpine); this is the operating system. However, pure GNU/Linux has nothing much to offer. A distribution of GNU/Linux combines the operating system with additional software that makes it into something actually usable. Namely, three core things are added to the GNU/Linux operating system to make it more usable:
- A desktop environment, which provides a user interface and some common utilities like a text editor, a media player, and a web browser. Examples include GNOME, KDE Plasma, and Xfce.
- A package manager, which handles the installation and uninstallation of software, as well as important operating system libraries, hardware drivers, and the kernel itself. Examples include apt, xbps, and pacman.
- An init and service manager, which handles booting up the operating system, supervises processes, and manages services. Examples include runit, OpenRC, and systemd.
These three things constitute practically the only changes from a GNU/Linux distribution to another. The Linux kernel, other than version and the traditional patches included, remains the same. The GNU userland also remains the same. To change from a GNU/Linux distribution to another is not necessarily to change operating systems, it is to choose a different set of desktop environment, package manager, and init system. The core of the system does not change much and remains relatively constant; this is especially true for big, corporate-backed distributions that seek to have a mostly complete out-of-the-box experience, since they will strategically include a reasonably large amount of firmware blobs and modules for hardware support.
When you acknowledge this, you realize that distrohopping is ridiculously overkill. You take down your entire installation of the GNU/Linux operating system only to install a very similar OS that simply includes different software on top. If you use file synchronization software like syncthing or Dropbox, and you’re not storing your files on a separate disk, this means re-downloading all your data for actually no good reason at all. This can be compared to uninstalling and reinstalling Windows every time you wish to change your image viewer. On GNU/Linux, you can uninstall the entire desktop environment and install a new one if you want without having to reinstall your operating system (and believe it or not, this is more straightforward than you think. On Debian, this requires two commands).
There are good reasons to switch from a distribution to another. If you want to use another package manager that has, for example, different versioning strategies, then you may have to change distributions since installing a foreign package manager may end up breaking your installation. You may also switch because you prefer the ecosystem, for instance you want the thoroughly tested and incredibly stable ecosystem of Debian. But both of these reasons are valid because they have to do with system internals; distrohopping for reasons of features is extremely overkill.
Second, what you like in one distribution can be setup in another one.
Some people will go through the trouble of installing a whole new distribution because they have something they like better. An often-cited reason is the desktop environment, which as I’ve briefly mentioned above, can often be switched with ease. Admittedly, this depends on the policies of the package manager; some package managers will handle the transition for you, while some will have less hand-holding which will require some manual fixes here and there, but this should only be the case in DIY distributions like Arch Linux or Gentoo where this should be expected anyway.
Sometimes, some people will talk of the appearance of the operating system. A friend told me that they switched from KDE Neon to Garuda Linux because it really looks good. They told me of the process: it required backing up their 100+ GB of data to an external disk, setting up a Garuda Linux USB drive, installing Garuda Linux, transfering back the data, re-logging into their accounts, re-installing all the software they used, and so on. Thing is, all of this was redundant, and he was a bit shocked when I told him. KDE Neon and Garuda Linux both use the KDE Plasma desktop environment; you can download the Garuda Linux styles and install them on KDE Neon with very minimal effort. The distrohop was completely unnecessary.
A big issue some people think exists, but truly doesn’t, is driver support differences. Many, many people swear by distributions like Linux Mint because they claim that it detects and installs drivers automatically. What actually happens is that Linux Mint only installs the drivers it thinks your system needs, whereas most distributions will include a reasonably large super-set of drivers by default and enable what’s needed based on what it pulls from your hardware description. Even the arch-nemesis of Linux hardware support, Nvidia, has completely functional GPUs entirely out-of-the-box on distributions like Debian 12 thanks to nouveau (whose faults have always been greatly exaggerated). The installation of proprietary drivers is only necessary for very demanding workloads, and even then, you can install them entirely from the interface in most corporate-backed distributions without having to touch the terminal, just like Linux Mint. For anything else, like bluetooth adapters, driver installation is one guide away. Therefore, distrohopping because of perceived grievances with driver support is mostly always exaggerated.
Third, specialized distributions suck.
Newbies to Linux are attracted to specialized distributions. Distributions that claim to be lightweight, distributions that claim to be secure, distributions that claim to be for gamers, and so on. All of these specialized distributions usually suck, and here’s why.
Your lightweight distribution is one that includes less software. That’s it. They’re not doing any tricks to lessen the system load other than actively removing features that are considered standard in the biggest corporate-backed distributions. More often than not, after installing a lightweight distribution, you will reinstall what’s missing right back when adding something like a standard web browser (which, on its own, will probably pull a thousand libraries or more), which will make it less lightweight. Some distributions don’t even include less software, instead they include the exact same software you usually find in most distributions but will switch out GNOME or KDE Plasma for Xfce or LXQt. This does result in a slightly more lightweight distribution, but again at the expense of features and some modern improvements (e.g. Wayland windowing, which is more secure than Xorg). If you want a lightweight distribution, either make your own with Arch Linux or Gentoo, or install a big one like Debian then remove what you need.
Your secure distribution is one that enables security features out of the box, such as the firewall, SELinux/AppArmor, and maybe base system immutability in distributions like Fedora Silverblue. However, unless your secure distribution ships with the linux-hardened
set of kernel patches, you can enable all of these security features in virtually any Linux distribution, making the switch to a so-called secure distribution redundant. As a matter of fact, you may not have to enable them at all; the biggest distributions like Debian and Fedora already come with a lot of security enabled without you having to touch anything. Fedora is notable for including SELinux with a base install.
Your gaming distribution is most likely Debian, Ubuntu, or Arch Linux with Steam, Proton, and OpenRGB pre-included and the desktop environment configured to look non-default. Valve’s flagship SteamOS (which you can install on your PC with HoloISO) is quite literally this and it is the most used gaming distribution in the world. Installing Steam, Proton, and OpenRGB on any distribution of Linux will result in the exact same gaming experience, except you will probably have saner defaults inherited from your QA-tested distribution and possibly more software. All three can even be installed as flatpaks, which means you will not touch a terminal ever. At this point, the only reason why you would be installing a gaming distribution is for convenience, at the expense of possible unstability and a probably worse ecosystem.
However, I do have to make an exception for Nobara Linux, who go out of their way to patch the kernel and compile pre-included software with settings proper for gaming and heavy GPU workloads. If you setup a device exclusively for gaming and don’t want to use HoloISO, Nobara Linux may actually provide a non-redundant performance advantage and better defaults. Do note that Nobara Linux will not always offer a user-friendly experience and will often require the terminal for some configuration, unlike big distributions.
So, what should I do?
Let’s recap: every GNU/Linux distribution is mostly the same operating system, except it has different pre-installed software on top; switching between distributions is almost always redundant unless you need a specific package manager or ecosystem; switching to a specialized distribution sucks and they barely provide an advantage. You can setup those advantages on your own.
If you agree to this, then you must be left wondering what exactly should be used. There are two answers:
- Install a barebones Linux distribution and build it from the ground-up with the things that you need.
- Install a Linux distribution that you know includes mostly what you need and modify it to include what’s missing.
A barebones Linux distribution is, in my opinion, the ideal choice, but only really applicable if you’re a power user. While it is becoming increasingly trivial to setup a DIY distribution of Linux (Arch, for instance, now has archinstall
to do mostly everything for you), most of those “barebones” distributions are rolling release, which are inherently less stable than QA-tested corporate distributions and therefore more prone to breakage. This is no good for the average desktop user that are interested in watching Youtube, partaking in Zoom meetings and playing games.
The alternative, to modify an existing Linux distribution, is actually a completely acceptable choice and is what I’m doing right now. In the past, I’ve used Void Linux since it offered an astonishedly stable ecosystem for what is a rolling release distribution. I’ve also distrohopped to Arch and Gentoo on two occasions because I eventually disagreed with Void’s package distribution policies and pacman’s accidental corruption of my /etc/crypttab
file (which, at the time, I didn’t know how to recover from and completely ruined my install). However, I came to the realization that it didn’t matter what distribution I was using because I was always building back the same exact system in the end: something powered by Gnome (I’m now using Xfce, little mea culpa here), pipewire, flatpaks for most graphical applications and distrobox for my development environment.
This made me think for a while because I was tired of thinking about which distribution to use when I should instead pick one that comes with what I like to use, and simply modify what’s needed to make it better for me. Even better would be that it ends corporate-backed and QA tested, because then I would not only have the experience of using something familiar and that I like, but also the advantage of the stability of a well-tested ecosystem. This whole shtick of distrohopping became useless to me and a colossal waste of time, and I saw that it was pointless when I know what I expected from an operating system. I eventually made the transition to Debian and never looked back.
Debian is, indeed, the best GNU/Linux distribution. It has quite possibly the largest Linux ecosystem (aside from maybe the AUR, but then the AUR will lack the stability guarantees of Debian’s repositories), has an incredible amount of documentation and support, is both corporate-backed and extensively tested for stability, and has very sane defaults that I would end up configuring on my own anyway. It has an excellent choice of desktop environments that you can choose during installation, is quite straightforward to install, and for the uninitiated to the terminal, comes with a software center to install what you need. On Gnome, it even includes built-in flatpak support for non-free applications. I went from using Gentoo to using Debian and I noticed virtually no difference whatsoever, other than Debian is much easier to use and I spend less time configuring USE
flags.
The single disadvantage with Debian is that it is very strictly versioned, and therefore packages will not receive feature updates until a new version of Debian is released. This does not mean that packages are outdated however, since Debian is still shipping bugfixes and updates to all of its packages on a regular basis; only feature updates are delayed until the next version for stability reasons, and unless you need these new features, the use of mildly older packages on your system will be unnoticeable. Debian 12 is currently shipping a version of Flameshot that’s around 20 versions old and there is nothing in it that’s missing to me. As for graphical applications, you can retrieve them from their websites to get the latest version or use flatpaks, which IMHO is what most Linux users should do since flatpaks provide astonishing stability and an additional (but still incomplete) degree of security through sandboxing. Worst case scenario, you can use backports to get newer versions of packages or even switch to Debian Testing.
Just so I’m clear, I am not prescribing Debian. I am telling you of the distribution I’m using because it is the best for me. I installed Debian, removed what I didn’t need, added back what I needed, and that was it. It resulted in the same exact experience I’ve had with a DIY distribution but with the incredible advantages of a stable ecosystem. What I am prescribing is to do this research on your own now that you’re equipped with a better understanding of what GNU/Linux is and which pitfalls not to fall into, most of which I listed above. Instead of looking for a specialized distribution or asking people for the best distribution, go with a reasonably popular, well-maintained distribution like Debian, Fedora, or OpenSUSE, then learn how to remove the things you don’t need and what to add to make it your best operating system. Then, you will never have to distrohop and you will never look back again.
A note for Windows users looking to leave.
If you’re looking for a good, solid reason to leave Windows, then just realize that most of what you use on your computer is software, not the operating system. This may sound like a strange statement, but it is true. Most users do not “use” their operating system, as in they do not use the controls and interfaces of their operating system beyond what’s necessary to launch things. Instead, the majority of their time is spent in software, and the majority of the software used is in fact just their Internet browser. There’s only a handful of times where the user goes to use their operating system - when they print a paper, for example. Even things that feel like you are “using” the operating system is actually just using software, like when you access the filesystem (which is done through a file explorer and not the operating system itself) or formatting a drive (which is always done through a software utility or two, GParted anyone?). Installing software through a package manager? You are using the package manager software, not the operating system.
If you come to the realization that most of your time on the computer has been spent using software, and not using the operating system, then you realize that the operating system you are using doesn’t really matter as long it provides what’s necessary for you to run your favorite software. If all that you run is LibreOffice, a web browser, some mail client, and VLC for music, and that’s literally all that you need out of a computer, then you will have the same daily experience regardless of whether you use Windows, macOS, Linux, or BSD, because they can run all of this software. And if you come to the realization that your set of software can run on most operating systems, then it is obvious that the best operating system in your case must be the one that
- is as minimal as possible (in terms of resource consumption)
- gets out of your way as much as possible, and
- runs all of the software you want.
Why use a system that consumes more resources and is more intrusive if a more minimal one can already do 100% of what you need? Just pick the least invasive, most optimized option and use it forever until your needs change. Find a cleaner, smaller, less privacy-invasive operating system that runs all the software you need? Use it. Don’t be afraid to switch. Linux is an obvious improvement over Windows in this here case.
Most users only use software, but there are circumstances where the user will actually use the operating system. Sometimes, there is a peripheral or some piece of hardware that only works with a given OS. Sometimes, an OS-specific feature is core to your needs (e.g., Windows with its Microsoft 365 integration). Or there will be software that you need for your job or your hobby and it doesn’t have a port to Linux/BSD. You don’t have to be ashamed if you use a more bloated, more intrusive OS if that’s what you really need.