Linux Distributions Guide
Most Linux users who keep "distrohopping" (especially newbies or even "advanced" users with OCD nowadays) are stuck with the illusion of the freedom of choice, often never realizing that they're jumping between desktop environments and software choices bundled up with the distro. They often judge Linux distributions based on how they look right after installation, without realizing that it's quite easy to change not just the appearance (like themes and configurations) but even entire desktop environments on distros that allow customizability and user control.
For this reason, most distro reviews and reviewers online, including those YouTubers who endlessly keep installing distros after distros in VMs and constantly nitpicking the smallest details and worthless minutiae like the default wallpapers and so on, they're all basically pointless. Every single distribution should not only be chosen based on the "default components" that come with it, but rather from a much wider selection of things that cater to every person's use-cases and serve different needs, with no choice inherently "better" than the other. Once you stop focusing on cosmetic defaults, the differences between distros become much easier to understand.
Probably the worst thing you can do is install a distribution that puts a giant wall between you and the system itself. One of the biggest advantages of using Linux is the ability to understand what's going on on your computer and optimize it, so if you use a distribution that hand-holds basic things, it might seem convenient at first, but as time goes on, you won't have a clue when that fragile system fails.
This guide will be going through most of these criteria, and listing the Linux distributions that matter most in this sense. The Better Software tenets also apply to this, since distributions are a bundle of software.
Criteria ~
Target CPU Architectures ~
The underlying instruction set architecture determines whether a distribution can even execute on your hardware. While standard x86_64 dominates, specialized use-cases require distros that natively build, test, and maintain packages for ARM, RISC-V, or legacy 32-bit (i686) architectures.
Software Repositories ~
The contents of official software repositories completely depend on the maintainers, as they're considered the sole governing body which allows what goes in or out. If a maintainer decides that a certain patch or program doesn't align with their vision (such as non-free programs), it gets dropped, leaving you to manually build it from source, manage its dependencies, or use external user-managed repositories (such as the AUR). Repository quality also matters; packages should be updated, well-organized, and maintained by people who care about correctness and stability. If the repository is small, outdated, or poorly curated, software management becomes frustrating very quickly.
Release Models ~
A distribution's release model determines how new or old its software tends to be. Some distros use a "stable" release model, where packages are tested for longer and updated more conservatively. Others use "rolling" release, where software is updated continuously, with users getting the latest software faster. Stable distros are usually better for users who want reliability (popular for servers or security-focused nerds), whereas rolling releases are better for users who want recent features and are comfortable with frequent updates (popular for most desktop use-cases).
Build Systems ~
Binary-based systems serve precompiled packages that use generic optimization flags to ensure they run on any generic processor, which (most of the time) bundles unnecessary compile-time features and bloat you might never use, but comes with the convenience of being ready to use. Source-based systems on the other hand force you to compile everything locally, and while this demands significant CPU time and patience, it grants you absolute control to strip out or replace unwanted dependencies, disable useless features via compilation flags, and optimize the binaries precisely for your specific hardware.
Installation Methods ~
Installation methods range from convenient and straightforward graphical installers (acting as a giant wall between you and the partition layout, bootloader configuration, and base system initialization) to manual and time-consuming command-line bootstrapping via chroot (for a broader understanding of how your kernel, initramfs, and mountpoints interact from day one, rewarding you with greater user control and a base for advanced ball knowledge).
Default Components ~
The internal userland of the operating system can be a multitude of laborious components to replace once a system is installed. Sometimes, a distro hard-wires them into their entire dependency tree, making them nearly impossible (or irrational) to strip out or replace later on (due to the distro's design priorities) and often forcing you onto a specific path of system management:
- Core utilities; GNU, BusyBox, FreeBSD coreutils, etc.
- C standard libraries; glibc (GNU C Library), musl libc, etc.
- Init systems; Systemd (see Systemd Sucks for why it sucks), OpenRC, Dinit, runit, s6, SysVinit, Shepherd, Cinit, sinit, etc.
- Package managers; Pacman, APT, dpkg, DNF, Portage, XBPS, apk, Nix, Homebrew, bloated "universalized" and "containerized" software packaging (with things like Snaps or Flatpaks), etc.
- Shell environments; Bash, Dash, ash, etc.
- Display protocols; Xorg or Wayland
- Desktop environments; GNOME, KDE, MATE, Xfce, Cinnamon, LXQt, LXDE, Budgie, window managers, etc.
The list goes on with more device management daemons, network daemons, audio architectures, cryptographic libraries, and so on. These default components all shape the out-of-box experience, and they drastically affect user experience more than most people realize, such as compatibility, performance, and minimalism.
Governance Model ~
Every distribution answers to someone making the decisions, whether it be an independent community of hobbyists and volunteers driven by the general consensus of the userbase, or a massive corporate entity with commercial interests, ultimately beholden to shareholders, enterprise contracts, and monetization strategies, which frequently manifest in their decisions favoring corporate infrastructure and stability over desktop user control.
Licensing Philosophy ~
The licensing philosophy dictates whether a distribution strictly permits only free and open-source software (copyleft/GPL), allows permissive licenses (MIT/BSD), or pragmatically includes non-free components (such as proprietary blobs, drivers, or software in their official repositories). Purist distributions will completely exclude proprietary firmware firmware blobs, which can leave many Wi-Fi cards, GPUs, or peripherals non-functional without heavy manual intervention. Hence, it's ultimately a personal choice between software freedom and hardware support.
Maintenance ~
One may want to make sure that his distro has humans on the development side that provide consistent and reliable maintenance. As programs change and are updated upstream, it requires ongoing adjustments within your system's specific repositories to ensure library compatibility and up-to-date packages (for binary-based distros). Unmaintained (or under-staffed) distributions might remain usable for a short time, but they quickly become an annoying broken mess to deal with as time goes on. If security patches languish or repository maintainers disappear, you are left holding a dead system where installing a single new tool requires fixing a broken web of outdated dependencies yourself.
Recommended Distributions ~
From the above criteria, we can conclude that there exist only a few Linux distributions worth looking at, which are judged by how much control it gives you (hence, it must be a "DIY" community-run distro) and how well it's maintained. Here are some of my recommendations for most general use-cases, all of which actively maintained!
Arch and Artix ~
Arch Linux is a community-run rolling-release GNU/Linux distribution, whose philosophy is theoretically centered around simplicity, user-centricity, and ideological pragmatism (non-free packages are thus included in official repositories, and users have the freedom of choice). Arch provides no default graphical interface out-of-the-box, and you're expected to work from a command-line environment, which may require expertise and patience while following the manual during installation, but on the bright side, it makes you learn so many things about the Linux system and how exactly your partitions, bootloader, networking, and core utilities interact. Because of its bleeding-edge release model and the Arch User Repository (AUR), it grants you the single widest, most up-to-date software library of any Linux distribution.
Artix Linux is a distro based on Arch, with the only difference that it strips out the Systemd parasite and allows the usage of different init systems like OpenRC, Dinit, runit and s6. It's my distribution of choice, along with the Dinit init system. It also offers many installable desktop environment ISOs for novice users coming from other Arch-based distros such as Manjaro, but unlike those distros, they don't overbloat the installations with gimmicky features. The Artix team is much under-staffed than Arch's for the time being (which makes sense since it's a deriative), so package updates may lack behind for some hours or sometimes days.
Debian and Devuan ~
Debian is the more conservative and boring option, focusing on stability in their release models, clear repository structure (separating free and non-free repositories), and long-term maintenance rather than novelty. The slow and stable release of software makes it the more suitale option for servers and security-focused desktop users, but not so much for most desktop users who want the latest features.
Devuan is also a soft fork of Debian that removes Systemd, providing SysVinit, OpenRC and runit as alternative init systems. It also sounds less "lesbian" than Debian, now does it?
Gentoo ~
Gentoo is one of the most powerful distributions for users who want maximum control. It's source-based, so you can compile software locally and choose how much you want to customize through basic compilation settings and USE flags (though there also exist binaries ready to install). Not only is non-free software obviously separated, but it isn't too difficult to have your Gentoo install run with a pure Linux-libre kernel if you're a complete purist, and you can also choose between Systemd and OpenRC as the default init system.
The tradeoff is that Gentoo expects more knowledge and patience (since compiling takes days of CPU time); installation and maintenance take more effort, but the result is absolute granular control over your system.