Linux distributions: identifying the ideal use cases.

My name is Brenton Horne and I have been using Linux on and off since 2012, including several years in which I used various distributions as my daily driver. These distributions include, among others: Arch Linux, Debian, Fedora, Funtoo Linux, Gentoo Linux, Linux Mint, Mageia, Manjaro Linux, NixOS, OpenMandriva Lx, openSUSE, Sabayon and Ubuntu. Consequently, I would classify myself as an experienced user, and I wanted to give my opinion about the ideal use case of several Linux distributions, especially independent and innovative distributions.

In the infoboxes I include in each distribution's section, I typically omit developmental releases when it comes to the release model and modernity sections. I do typically consider developmental releases when it comes to the initial release section, however. The images I show are largely hyfetch, neofetch or fastfetch output. For Linux From Scratch, I just used the official logo.

When I mention "exotic" or "obscure" software, I mean software that is fairly unpopular and used for niche purposes. For instance, the Marvin Suite of ChemAxon is a piece of software for sketching skeletal formulas, among other things, and I would class it as exotic or obscure as it is only used for a fairly niche purpose and not many people are aware of it.

Table of contents
  1. Preliminaries
  2. Alpine Linux
  3. Arch Linux
  4. Chimera Linux
  5. CRUX
  6. Debian
  7. deepin
  8. elementary OS
  9. Exherbo
  10. Fedora
  11. Gentoo Linux
  12. Guix System
  13. Linux From Scratch
  14. Linux Mint
  15. Mageia
  16. MX Linux
  17. NixOS
  18. NuTyX
  19. openmamba GNU/Linux
  20. OpenMandriva Lx
  21. openSUSE
  22. PCLinuxOS
  23. Rhino Linux
  24. Slackware Linux
  25. Solus
  26. Ubuntu
  27. Vanilla OS
  28. Void
  29. Footnotes

Preliminaries

What is Linux?

A Linux distribution is defined by its use of the Linux kernel. The kernel is the component of an operating system that manages all communication between hardware and software. On Linux, file system (which provides a structure for the organization and access of files) support is also mostly within the kernel, although some tools for managing file systems (e.g. mkfs command) are provided by other core system software. Device drivers—which are pieces of software required to get specific hardware devices to work—are typically included within the kernel. That being said, support for certain file systems and devices is provided separately to the kernel due to licensing issues.

Licensing

The Linux kernel is likely the single most popular operating system kernel in the world, due to its use in servers, Android smartphones and IoT devices. Unlike the kernel of Windows, it is open source. Open source, in this context, means that the source code of the Linux kernel is openly shared and can be legally modified and redistributed by anyone. The Linux kernel is licensed under the GNU General Public License (GPL), which is copyleft. A copyleft license is an open-source licence that requires that any code derived from code licensed under it is distributed under a similar copyleft license. Many companies (e.g. NVIDIA and Broadcom) that design hardware and their device drivers choose not to distribute their drivers under the GPL or licenses compatible with it. Due to this, these drivers cannot be included in the kernel. This is one reason why desktop Linux users often experience hardware compatibility issues when running Linux. Likewise, the Linux kernel module that adds support for the ZFS file system is distributed under the Common Development and Distribution License (CDDL), which does satisfy the open-source criterion, but it is not copyleft and hence is not GPL compatible and cannot be included in the kernel.

File system

Popular file systems with Linux kernel support include, but are not limited to: Btrfs (which can be pronounced as "butterFS" or "betterFS"), ext4, FAT32 (popular for EFI system partitions) and XFS. The Linux kernel can also support ZFS via a third-party kernel module.

Btrfs and ZFS are the most advanced of these file systems, they can both span multiple disks and both have a focus on safeguarding data integrity and support snapshotting to back up the file system. They also have among the largest maximum file system and file sizes. ZFS is the more mature file system out of Btrfs and ZFS and has more advanced features and typically better performance (although, this is partly due to it doing a lot of operations in RAM). ZFS has poorer performance on file read and writes, which is a major part of what a root file system is used for, so for root file systems Btrfs or XFS may be preferable. Btrfs and ZFS are particularly popular on servers, due to the importance of data integrity, backups and the ability of file systems to span multiple disks in this specific context.

ext4 is a more basic file system without the advanced data integrity safeguards, snapshotting features and ability to span multiple disks of Btrfs and ZFS. It also has journalling, which is used to log all changes to the file system. This is used as a check on data integrity and can also help recover the file system in the event of damage, but it also has performance costs such as during write operations. It can be disabled, but this should not be done lightly as it can cause issues with file system recovery.

XFS is a journalling file system designed to have superior performance to ext4 in some circumstances and its maximum file system and file sizes are larger too, although these limits are \geq16TB, so not relevant to most desktop users.

Unix

Linux distributions are almost always Unix-like too, although there are exceptions like Android. This means, among other things, that most Linux distributions share similar commands to Unix systems and roughly follow the design philosophy of Unix with each command doing just one thing and doing it well.

Core components of a Linux distribution

What other software a Linux distribution uses varies markedly between distributions and even between different installs of the same distribution. Other core components of a Linux operating system include, but are not limited to a:

  • Bootloader. This is essentially what boots the system, loading the kernel. GNU GRUB, SYSLINUX, LILO and systemd-boot are popular bootloaders for Linux distributions.

  • Init system and service manager. The init is the first process that the kernel starts after the system is booted. It starts, either directly or indirectly, all other processes. Service managers manage daemons, which are background processes. These processes can be important and manage things like the internet connection (e.g. dhcpcd) and graphical login manager. The most popular Linux init systems, many of which also function as service managers, are in approximately descending order of popularity: systemd, SysV init, OpenRC, runit, Dinit, BusyBox-init, GNU Shepherd and s6. systemd is disliked by some Linux users, one reason they often cite for this is that it violates the Unix philosophy in that it does so many different things (including providing its own replacements for some daemons).

  • C standard library. This provides functions, macros and type definitions that programs written in C—which many core components of any Linux system are—can call. The vast majority of Linux distributions use glibc (from the GNU Project) to provide this. Musl is a less commonly used alternative that has a security focus. uClibc is another possible alternative for Linux distributions.

  • Toolchain, including a compiler. This is basically what it used to build most components of the system, converting source code into binaries that can be executed. GNU Toolchain, including the GNU Compiler Collection (GCC), is the most common toolchain on Linux. LLVM and Clang are popular alternatives.

  • The Unix shell. This serves as a crucial part of the systems command-line interface. Bash is the most common Unix shell on Linux and is developed as part of the GNU Project. Zsh is a popular alternative, although it is not a popular default shell for Linux distributions and is usually manually installed by users that want a shell with advanced features. tcsh and sh are less popular Unix shells that can be installed on Linux.

  • Unix commands, or userland utilities. These are used to perform common command-line tasks such as copying files, moving files, manipulating strings, producing checksums, determining the current directory, etc. Most Linux distributions use the GNU coreutils package to provide these commands. BusyBox also provides many of these commands. Other Unix and Unix-like systems such as FreeBSD, NetBSD, OpenBSD and OpenIndiana provide their own versions of these commands. I know that at least FreeBSD's Unix commands have been ported to Linux.

  • util-linux. It is provided by the Linux Kernel Organization, like the kernel itself. util-linux provides some more commands on most Linux distributions such as chsh for changing the default Unix shell, dmesg for checking the status of kernel modules and fsck for checking and fixing file systems.

  • Package manager. This provides a means of installing, removing and updating software on one's system. In this section, I am going to limit myself to command-line package managers, although many of these command-line package managers have graphical front-ends that utilize these command-line package managers in the background. Examples include GNOME Software and Discover which can be front-ends to a range of different command-line package managers thanks to PackageKit. Some distributions, such as Bodhi Linux, also use browser-based app stores. There are several different command-line package managers, including, but not limited to:

As many core components of most Linux distributions are created as part of the GNU Project, many argue that most Linux distributions should be called GNU/Linux distributions to give appropriate credit to the GNU Project.

Linux graphical user interface

Most desktop Linux installations have a graphical user interface (GUI) too. A sufficiently complete Linux GUI that implements the desktop metaphor is often called a desktop environment. Components of Linux GUIs include:

Complete desktop environments include GNOME (originally part of the GNU Project), KDE Plasma (versions 4, 5 and 6), Deepin Desktop Environment, Cinnamon, Budgie, LXDE, MATE, LXQt, Trinity, UKUI, Lumina and COSMIC.

Installer

Many Linux distributions have automated installers available, although some like Chimera Linux, Exherbo, Gentoo Linux and Linux From Scratch do not. Linux distribution installers range from installers accessed via the command line such as the installers of Alpine Linux, Arch Linux and Void to the graphical installers of Anaconda (mostly used by Fedora and derivatives thereof), Calamares (an installer intended to be distribution-agnostic and used by many Arch derivatives like EndeavourOS and Manjaro, along with KDE Neon, NixOS and OpenMandriva Lx, etc.), Debian's installer, Ubiquity (used by Ubuntu and its derivatives) and YaST (used by openSUSE).

Release model

Another difference between Linux distributions is their release model. Release models come in three different categories: fixed, rolling and semi-rolling.

Most Linux distributions follow a fixed release model with new releases of the distribution every so often. Typically, these releases differ in the versions of system software and GUI software included in the system. These pieces of system software do often receive security and bug fixes over the lifetime of a given release, but they usually do not undergo major updates during that time. Most distributions following a fixed release have a mechanism to upgrade from one release to the next. Although, these upgrades can cause system breakage.

Some distributions follow a rolling release model in which there are no fixed releases of the system. Rather updates to each system and GUI component are just provided whenever they are ready, instead of major updates being held back for the next release of the distribution. As these updates can bring major changes to one's system, it is possible for regular system updates to break a rolling release system.

The final category is semi-rolling. It is when some major components are allowed to roll, with major updates whenever they are ready, and other components stay at largely the same version (aside from security and bug fixes) until the next fixed release of the distribution. This approach comes with the pros and the cons of both fixed and rolling release distributions, with upgrades between fixed releases able to cause system breakage and so can regular updates at times. Although, regular updates, when they break things, usually are limited in the components they can break as not all major components are allowed to roll.

Alpine Linux

Initial release August 2005
Website alpinelinux.org
Release model Fixed
Modernity1 Bleeding edge
Installer setup-alpine—text-based.
Package manager (type) Alpine Package Keeper (APK; binary)
Packaging file(s) APKBUILD—shell script.
Compiler GNU Compiler Collection (GCC)
Init system OpenRC
C standard library musl
Userland BusyBox
Shell sh
Repository size1 Large
Base install2 Minimal
Documentation3 Detailed

Alpine Linux is a security-focused distribution primarily intended for servers, routers, virtual private networks (VPNs), and alike. A base Alpine Linux install can be as small as 144 MB in size and does not include Bash, sudo, Vim or nano. The aforementioned intended uses are likely its ideal use case too, although I could see it being popular with desktop users that value security, a fast package manager, a minimalist system and a fixed release model.

Arch Linux

Initial release 11 March 2002
Website www.archlinux.org
Release model Rolling
Modernity1 Bleeding edge
Installer archinstall—textual installer.
Package manager (type) pacman (binary)
Packaging file(s) PKGBUILD—shell script.
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash (install), Zsh (live).
Repository size1 Vast, if the Arch User Repository (AUR) is included.
Base install2 Minimal
Documentation3 Comprehensive
No conversation about Linux distributions geared towards advanced users would be complete without Arch Linux. It follows a Keep it Simple, Stupid (KISS) design philosophy. I may be biased in its favour as it is my go-to Linux distribution. A base install comes without a graphical user interface and has a pretty minimal array of packages, although the total size of a base install is about 1.7GB. It also has perhaps the most comprehensive documentation and vast repositories of any distribution, although it could be argued that NixOS has taken this title in recent years. That being said, I have experienced issues with Arch Linux before. Actually, I experienced one such issue while I was writing this webpage. See, I use Franklin.jl to build this website and I tried to deploy this website locally using my Arch Windows Subsystem for Linux (WSL) and I received errors related to the fact that Julia was using artefacts that expected OpenSSL 3.2.0 and my Arch WSL was using OpenSSL 3.4.0.

It is ideal for users that:

  • Are comfortable with the command line. Those not comfortable with the command line may favour EndeavourOS, Garuda Linux or Manjaro Linux.

  • Want the freedom to customize their system and have the knowledge and experience to do so successfully.

  • Do not have the desire to compile most components of their system from source.

  • Want the very latest software. On the flip side of this, they should also know how to recover from an update breaking their system. Users that do not have this knowledge should probably use Garuda Linux instead as it comes with tools for backing up the system and restoring it in case a system update breaks it.

  • Prefer a rolling release model.

  • Prefer a fast package manager. pacman is one of the fastest I have ever encountered.

  • May want obscure pieces of software. Packaging on Arch is easy for people familiar with shell script — the language of the Linux command line — and with its vast repositories many users do not even need to resort to packaging software for themselves.

  • Do not mind using standard system software like systemd. Users that dislike systemd may prefer Artix Linux.

Chimera Linux

Initial release 2021
Website chimera-linux.org
Release model Rolling
Modernity1 Bleeding edge
Installer Manual—bootstrapping.
Package manager (type) APK (binary), cports (source)
Packaging file(s) template.py—Python script.
Compiler Clang
Init system Dinit
C standard library musl
Userland FreeBSD
Shell sh
Repository size1 Medium-small
Base install2 Minimal
Documentation3 Minimal

Chimera Linux (not to be confused with ChimeraOS) is a truly unique Linux distribution and uses a very unusual combination of system software components. One interesting characteristic of the distribution that I did not mention in the infobox to the right is that Chimera Linux does not come with sudo pre-installed and it does not seem to be in Chimera's repositories (source). Given the distribution's security focus, as evidenced by its use of musl, I would imagine this omission is a deliberate security feature.

The ideal use case of Chimera Linux would be on security-critical systems, with users that favour FreeBSD's command line, do not need vast repositories and prefer rolling release models. Especially those that prefer to write their own packages using Python scripts, prefer fast package managers and dislike systemd.

CRUX

Initial release December 2002
Website crux.nu
Release model Fixed
Modernity1 Stable
Installer Manual, with setup script.
Package manager (type) Ports with prt-get (source).
Packaging file(s) Pkgfile
Compiler GCC
Init system SysV
C standard library glibc
Userland GNU
Shell Bash
Repository size1 Small
Base install2 Minimal
Documentation3 Minimal

CRUX aims to keep it simple as it uses tar.gz-based packages, BSD-style init scripts, and has fairly small repositories. It otherwise uses standard Linux system software. CRUX follows a fixed release model with new releases every year or two. It uses source-based package management and is best suited to advanced users that appreciate its idea of simplicity and want to compile their software from source. A base install of CRUX 3.7, with GRUB installed to serve as the bootloader, uses about 2.6GB disk space.

Debian

Initial release August 1993
Website www.debian.org
Release model Fixed
Modernity1 Stable5
Installer Debian-Installer—graphical.
Package manager (type) Advanced Packaging Tool (APT; binary)
Packaging file(s) Rules (Makefile), control, copyright and changelog files
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Very large
Base install3 Minimal or compete
Documentation4 Detailed

Debian is the second-eldest Linux distribution still under active development. It has new stable releases every two years, roughly. It has three and sometimes four branches. In ascending order of modernity, they are (fourth branch in brackets): (old stable), stable, testing and unstable. Old stable corresponds to the previous stable release of the distribution. The stable branch corresponds to the current stable release of the distribution; each stable release comes with three years of support. In the lead up to a new stable release, the testing branch is forked and frozen and the packages undergo further testing and potentially patching until they are ready to be incorporated in the next stable release. Unstable is where Debian's very latest packages start out, until after sufficient testing they make their way into testing. Testing and unstable branches follow a rolling release model and are cutting edge and bleeding edge, respectively.

Debian packages are built using a directory of packaging files. Among these is a rules file which is a Makefile with custom build commands. Personally, I have found Debian packaging one of the most challenging to wrap my head around. Partly because I found the custom build commands in rules files poorly documented. Although, naturally it may not be as challenging for others.

As users can choose a minimal install from its installer, and there are three main branches users can choose from, Debian can be a good choice for users that want to customize their system as much as one can without installing packages from source. Especially those that do not mind using systemd, like having very large repositories and do not mind having to use Makefiles to build packages, should one need to. Users needing more a beginner-friendly distribution should ideally use the Debian derivatives elementary OS, Linux Mint, MX Linux, Ubuntu or Zorin OS. Debian stable is also rock solid stable and is a great option for servers and production systems where stability is of upmost importance.

Popular Debian derivatives include:

I cover deepin and Ubuntu and some Ubuntu derivatives in separate sections, the rest I will cover here.

antiX is designed to be lightweight and fast distribution with runit or SysV init as its init system. It uses JWM as its default user interface. It is ideal for users that want or need a lightweight distribution such as due to using old hardware.

Devuan is essentially just Debian without systemd. It offers SysV init, runit and OpenRC editions.

deepin

Initial release 28 February 2004
Website www.deepin.org
Release model Fixed
Modernity1 Stable
Installer deepin-Installer—graphical.
Package manager (type) APT (binary) and LingLong (binary)
Packaging file(s) Per Debian
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Very large
Base install3 Compete
Documentation4 Detailed
deepin uses its own desktop environment called Deepin Desktop Environment (DDE) and has its own custom applications, including its own artificial intelligence (AI) assistant. It is developed by a Chinese company and has editions in both Mandarin Chinese and English (it seems to have support for other languages too, though). The English edition does have some untranslated Mandarin Chinese text in it, however. It is not enough to make the system unusable for people that do not understand this text, but may cause problems at times. Many consider it one of the most beautiful Linux distributions out there, at least in terms of its default aesthetics. Its packages can get outdated and it has tried to develop its own package manager called Linglong as a way of providing more up to date versions of application software.

It is ideal for users that want a beautiful desktop, have a large amount of free disk space, favour fixed release and appreciate distributions that try to innovate for their users. Especially users that are native Mandarin Chinese speakers. It also seems fairly beginner friendly to me.

The free disk space required is at least 64 GB for the 25 preview release. The installer initially said 45 GB disk space was required, but when I went to partition my disk the installer said 64 GB disk space was required. The base installation ended up using just 18.6GB, roughly (after I had created my user account). I also noticed that deepin 25 preview used an immutable root file system.

Its AI assistant answered my system memory when I asked how I could update my system given my root file system is read only. When I said that is not what I asked for it replied to me in Mandarin (even though my prompts were in English and my system language was set to English), although its answer this time seems relevant. Consequently, I would not say it is quite ready for everyday use, unless you have sometime to translate and correct its replies.

elementary OS

Initial release 31 March 2011
Website elementary.io
Release model Fixed
Modernity1 Stable
Installer elementary Installer—graphical.
Package manager (type) APT (binary)
Packaging file(s) Per Debian.
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Very large
Base install3 Complete
Documentation4 Medium

elementary OS has its own desktop environment called Pantheon which is built on GTK 3 and Vala and is rather aesthetically pleasing and has a macOS-like look with a dock. elementary OS is designed to be beginner-friendly and is based on Ubuntu LTS releases. macOS users that want to start try out Linux may prefer using elementary OS. It has a software centre that provides users the option to donate to their favourite projects. elementary OS itself can be downloaded for free, but its website does encourage users to pay what they want for the distribution.

Exherbo

Initial release 17 January 2006?6
Website exherbolinux.org
Release model Rolling
Modernity1 Bleeding edge
Installer Manual—bootstrapping and compiling.
Package manager (type) Paludis (source)
Packaging file(s) ebuild—shell script with custom commands.
Compiler GCC
Init system systemd7
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Medium-small
Base install3 Minimal
Documentation4 Medium

Exherbo is a source-based distribution that originally was forked from Gentoo Linux. Like Gentoo, it uses ebuilds as its packaging files. Its package manager, Paludis, is written in C++ unlike Gentoo's Portage, which is written in Python. Paludis is specifically meant to be a better alternative to Portage. Given Exherbo has smaller repositories and less comprehensive documentation, but is practically the same as Gentoo except without Gentoo's binary repositories, I would be inclined to think that Exherbo is best suited to Gentoo fans that are disgruntled with Portage.

Fedora

Initial release 4 November 2003
Website fedoraproject.org
Release model Fixed
Modernity1 Cutting edge
Installer Anaconda—graphical.
Package manager (type) Dandified YUM (DNF; binary)
Packaging file(s) Spec file
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Large
Base install3 Complete
Documentation4 Medium

Fedora is a distribution that can be argued to be beginner friendly, although I am inclined to not put it in that category because it does not have out-of-the-box support for proprietary drivers, including WiFi drivers. Fedora is one of the most up-to-date fixed release distributions I am aware of, although each release usually keeps to the same release (except for bug and security fix releases) of desktop environment software and with six months between releases, this makes it not truly bleeding edge. Fedora releasers come with 13 months of support, so users only need to upgrade to every second release, should they choose. Fedora also has an immutable root file system edition called Silverblue. Fedora is best suited to users that favour a fixed release model, like cutting edge software, need large repositories and prefer to package with spec files, when this is necessary.

Fedora is the basis of CentOS Stream, which in turn is the basis of Red Hat Enterprise Linux (RHEL) and derivatives thereof like AlmaLinux and Rocky Linux. RHEL and its derivatives are popular server distributions; they come with about a decade of support. RHEL itself comes with an additional two years of extended lifecycle support.

Gentoo Linux

Initial release 31 March 2002
Website www.gentoo.org
Release model Rolling
Modernity1 Cutting edge8
Installer Manual—bootstrapping and compiling.
Package manager (type) Portage (source)
Packaging file(s) ebuild—shell script.
Compiler GCC
Init system OpenRC/systemd7
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Large
Base install3 Minimal
Documentation4 Detailed

Gentoo Linux is, in many ways, the prototypical source-based Linux distribution. It uses its own package manager called Portage which is meant to be a true ports system in the spirit of BSD ports. Although, in recent years it has become feasible to install most package as pre-compiled binaries via Portage. Interestingly, there have even been projects to port Portage to other operating systems like the BSD derivatives FreeBSD and NetBSD.

Previously, Sabayon Linux occupied this niche by offering binary packages on a Gentoo base while still allowing users to install software from source via Portage. Although, Sabayon provided binary packages via its own package manager called Entropy. Sabayon Linux was discontinued around 2020.

Calculate Linux, which is still actively maintained, can also be argued to occupy this niche as it provides binary packages too while still giving users the option to install from source via Portage. Unlike Sabayon, which provided its own binary package manager, Calculate just uses Portage to install binary packages. Sabayon and Calculate both have or had automated installers, unlike Gentoo.

Now it seems like Gentoo itself is trying to occupy the niche of offering binary packages on a Gentoo base as well. As a casual user that likes to try it out in virtual machines from time to time, is an attractive feature in my opinion.

Gentoo is ideal for Linux users that want complete freedom to customize their system all the way down to the configure/compile options used to build each package. Users can even fork packages and apply custom patches to them, should they choose.

Guix System

Initial release 29 March 20169
Website guix.gnu.org
Release model Fixed
Modernity1 Stable
Installer Text-based installer.
Package manager (type) GNU Guix (binary)
Packaging file(s) GNU Guile scripts.
Compiler GCC
Init system GNU Shepherd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Medium
Base install3 Minimal or complete
Documentation4 Detailed

Guix System (pronounced "Geeks") is a reproducible, entirely free (as in freedom) Linux distribution that uses its own package manager called GNU Guix which installs each package to its own unique directory within /gnu/store. While Guix System uses GNU Guix as its package manager, GNU Guix is technically distribution-agnostic. Guix System is configured using files written in GNU Guile, such as /etc/config.scm. GNU Guile is also used to write packaging files for GNU Guix. Unlike NixOS, another reproducible Linux distribution, it does not seem to keep old configurations in its bootloader menu by default. It seems suitable for users that want a system entirely configurable using a single file written in GNU Guile and favour an entirely free operating system (down to using the Linux-libre kernel by default), even though this often comes with hardware compatibility issues.

Linux From Scratch

Initial release 3 December 1999
Website www.linuxfromscratch.org
Release model Fixed
Modernity1 Stable
Installer Manual compilation of each component.
Package manager (type) None, software manually compiled from source.
Packaging file(s) None
Compiler GCC
Init system systemd/SysV
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Small
Base install3 Minimal
Documentation4 Detailed

Linux From Scratch (LFS) is a source-based distribution wherein each software package is manually compiled and installed from source. Users achieve this by following the instructions in a book provided by the LFS project. LFS itself only provides users with a base Linux system, there is a sister project called Beyond Linux From Scratch (BLFS) that provides users with the additional software (e.g. graphical user interface software) required for a more complete and functional system. LFS does not have a piece of software to manage package management for the user, instead the user is the package manager. This does give users complete ability to build their system from the ground up and customize it to their liking.

Many people find installing LFS a frustrating experience as it is tedious and small mistakes can cause big problems. Despite these frustratons, installing a LFS system is a very effective way to learn about the inner workings of a Linux operating system. It is also an invaluable option, as far as Linux distributions go, for Linux users that want to customize their system down to the compile options used to build packages.

Linux Mint

Initial release 27 August 2006
Website linuxmint.com
Release model Fixed
Modernity1 Stable
Installer Ubiquity—graphical.
Package manager (type) APT (binary)
Packaging file(s) Per Debian
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Very large
Base install3 Complete
Documentation4 Medium

Linux Mint is a beginner-friendly distribution based on Ubuntu's long-term support (LTS) releases. Its team forked GNOME 3 to create Cinnamon in an attempt to provide users a more classic desktop experience. It has three official editions that all feature a classic desktop experience that includes a Windows-like layout. The distribution includes many of its own tools for common tasks like package management and configuration. There is also a Debian-based edition of Mint.

It is ideal for beginners that are used to the Windows layout, especially if they do not want the latest software, would rather have system upgrades every two years or so, and do not have especially exotic software needs.

Mageia

Initial release 1 July 2011
Website www.mageia.org
Release model Fixed
Modernity1 Stable
Installer DrakX—graphical.
Package manager (type) DNF (current) and urpmi (legacy)—both binary.
Packaging file(s) Spec file.
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Medium
Base install3 Complete
Documentation4 Medium

Mageia is a Linux distribution that started out in 2011 as a fork of Mandriva Linux created by some former employees of the company that had developed Mandriva. Originally, it used the same tools as Mandriva like the package manager urpmi, but it has modernized in some ways and now uses DNF as its package manager. My experience with it is that it is rock solid stable, but many packages that I use are missing from their repositories. Consequently, I would recommend Mageia to users that want a rock solid stable system and do not have obscure software needs. Especially if they used Mandriva Linux and were fond of it.

MX Linux

Initial release 24 March 2014
Website mxlinux.org
Release model Fixed
Modernity1 Stable
Installer MX Installer—graphical.
Package manager (type) Advanced Packaging Tool (APT; binary)
Packaging file(s) Per Debian
Compiler GCC
Init system SysV
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Very large
Base install3 Compete
Documentation4 Medium
MX Linux is based on antiX but uses customized and prettified Xfce, KDE Plasma or Fluxbox as its user interface. It has several tools specifically developed for the distribution, including configuration tools and graphical package management tools. It is ideal for users that dislike systemd, like aesthetically pleasing desktops, and prefer a fairly beginner-friendly experience.

NixOS

Initial release 3 June 2003
Website nixos.org
Release model Fixed
Modernity1 Stable
Installer Calamares—graphical.
Package manager (type) Nix (binary)
Packaging file(s) Nix file
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Vast
Base install3 Minimal or complete
Documentation4 Comprehensive

NixOS is a reproducible Linux distribution that is configured using files written in a special-made purely functional programming language called Nix. While it is purely functional, it does incorporate a few syntactic elements from shell script. It also uses a package manager called Nix; Nix installs each package to its own unique directory within /nix/store. This means that multiple versions of the same package can be installed on a NixOS system. It then sets up symlinks and environment variables to ensure that each piece of software is able to find all libraries, binaries and alike that it depends on. Nix packages are also specified using files written in the Nix language. Nix and NixOS started out in the early 2000s as a research project by then software engineering student Eelco Dolsta.

Its chief system configuration file is /etc/nixos/configuration.nix and this file largely uniquely determines the root file system of the distribution. This is why the system is reproducible, as the root file system of two NixOS systems built with the same configuration file will be largely the same. This is with the exception that if additional packages are installed using user configuration files or running nix-env -i <package> they will be installed under /nix/store. Whenever one wants changes to the aforementioned system configuration file to come into effect, one runs nixos-rebuild switch (as root) and the new configuration is built. The old configuration is also kept and when users boot the system they can boot the new configuration (which is the default), or the old configuration. NixOS also keeps even older configurations, if they exist, although naturally this uses disk space so there is a command to remove older configurations (nix-collect-garbage -d) to free up disk space.

One thing I like about NixOS is that it usually will not let you build an invalid configuration, which means that whenever I boot NixOS, I can be almost certain it will successfully boot. NixOS has one other system configuration file that I have not mentioned, although it specifically pertains to hardware configuration. It is /etc/nixos/hardware-configuration.nix and it is where I have found NixOS seems to turn a blind eye to certain errors and sometimes will let you build an invalid configuration. Specifically, I have built unbootable NixOS systems by accident by specifying a root file system in this file that does not exist. No warning was given that I had specified an invalid root file system. I have started a discussion about this issue on NixOS' discourse.

NixOS is ideal for intermediate to advanced Linux users that:

  • Want a reproducible system.

  • Do not mind using systemd.

  • Like the idea of configuring their system using a file written in a functional programming language.

  • Want a system that it is more difficult to break, as it typically will not allow you to build a broken configuration.

  • Would like to create packages for their system using files written in that language.

Nix has also been ported to several other operating systems, including BSD derivatives and macOS. There is even a NixBSD project that aims to create an operating system that uses the Nix package manager and the FreeBSD kernel.

NuTyX

Initial release 14 September 200910
Website nutyx.org
Release model Fixed
Modernity1 Stable
Installer NuTyX Installer—text-based.
Package manager (type) Cards (binary and source)
Packaging file(s) Pkgfile—shell script
Compiler GCC
Init system SysV
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Medium
Base install3 Minimal or complete
Documentation4 Minimal

NuTyX is based on LFS and BLFS but has its own package manager called cards. It allows users to install software from binary packages and from source via a ports system. This makes it remind me a little of FreeBSD's approach to package management, as it has a binary package manager called pkg and a ports system that users can use to install software from source. NuTyX is aimed at intermediate to advanced users. I think NuTyX is ideal for intermediate to advanced users that do not need obscure software, and want a distribution with a hybrid approach to package management.

Something interesting about NuTyX that I noticed in one of my virtual machines that runs NuTyX 24.10 was that installing VirtualBox guest additions seems to cause a few errors to appear in the boot screen, although the system still successfully boots and loads a graphical user interface.

openmamba GNU/Linux

Initial release Before 4 August 200911
Website openmamba.org
Release model Fixed
Modernity1 Cutting edge
Installer Mamba Installer—graphical.
Package manager (type) DNF (binary)
Packaging file(s) Spec file
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Medium-small
Base install3 Complete
Documentation4 Minimal

openmamba GNU/Linux is a Linux distribution that offers out-of-the-box support for hardware with proprietary drivers. I personally found it ran fine in a virtual machine, but I have seen some reviews of it online that have mentioned significant bugs in previous installation medium releases. I am inclined to suggest it as an option for users fond of RPM packaging and rolling release models that do would be content with the distribution's relatively small repositories and need out-of-the-box support for devices that require proprietary drivers.

OpenMandriva Lx

Initial release 18 June 2013
Website www.openmandriva.org
Release model Fixed and rolling
Modernity1 Stable (fixed), bleeding edge (rolling)
Installer Calamares—graphical.
Package manager (type) urpmi (legacy) and DNF (current)—both binary.
Packaging file(s) Spec file
Compiler Clang
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Medium-small
Base install3 Complete
Documentation4 Medium

OpenMandriva Lx is a continuation of Mandriva Linux developed by a community project. Like Mageia, it uses the DNF package manager. Unlike Mageia, it comes in two editions—a fixed release and rolling release edition. It first started to offer a rolling release edition in 2023.12 One major difference with Mageia is that it uses Clang as its compiler. It seems most suitable to users that favour RPM packaging, want to use a distribution with Clang-compiled packages, do not mind its relatively small repositories and have a fondness for the old Mandriva Linux distribution.

openSUSE

Initial release 7 December 2006
Website www.opensuse.org
Release model Fixed (Leap) and rolling (Tumbleweed)
Modernity1 Stable (Leap), bleeding edge (Tumbleweed)
Installer YaST—graphical.
Package manager (type) ZYpp (binary)
Packaging file(s) Spec file
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Large
Base install3 Complete
Documentation4 Medium

openSUSE is a continuation of the SUSE Linux distribution developed by a group of German computer science students and first released in March 1994. Like OpenMandriva Lx, it comes into separate editions — one, Leap, that features a fixed release model and another, Tumbleweed, that features a rolling release model. openSUSE started providing two separate editions in 2014,13 whereas OpenMandriva Lx adopted this two edition approach around 2023.12

One notable feature of openSUSE is that, by default, it uses Btrfs as its root file system. It is used as it allows for easier snapshots to backup the root file system. In my experience, this is more of a curse than a blessing, as I tend to find that openSUSE with a Btrfs root file system becomes unbootable within about a fortnight for me, at least. This is even when I keep on top of the snapshots, delete the old ones and keep an eye on my disk usage using Btrfs' own tools. I mention that I use Btrfs' own tools as the Linux command-line tool df is not accurate in measuring file system usage when it is a Btrfs file system. openSUSE also uses XFS as its default home file system.

I would recommend openSUSE to intermediate to advanced users that like RPM packaging and may need obscure pieces of software. In theory, it could be used by a beginner, but I personally think that a beginner would likely really struggle with Btrfs. This is obviously a problem for openSUSE given it is the default root file system of the distribution. Either they would struggle to keep on top of the snapshots and preventing them from using up their entire root file system, or they may experience an issue like that one I previously mentioned.

SUSE Linux Enterprise (SLE) is based on openSUSE Leap and is a commercial product. It comes with about thirteen years of general support, an additional three years of long term service pack support (total sixteen years) and an additional three years of long term service pack core support (total nineteen years). It comes in two editions, SLE Server for servers and mainframes and a desktop/workframe edition called SLE Desktop.

PCLinuxOS

Initial release October 2003
Website pclinuxos.com
Release model Rolling
Modernity1 Stable
Installer PCLinuxOS Installer—graphical.
Package manager (type) APT-RPM (binary)
Packaging file(s) Spec file
Compiler GCC
Init system SysV
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Medium
Base install3 Complete
Documentation4 Medium

PCLinuxOS is a beginner-friendly Linux distribution that was originally forked by Bill Reynolds (Texstar) from Mandrake Linux 9.2 in 2003. It is rather conservative in some ways, for instance it still uses SysV as its init system, APT-RPM as its command-line package manager and Synaptic as its graphical package manager. APT-RPM had its last release in 2008, Synaptic has an outdated look although it is still maintained and SysV has been superseded on most distributions (not all, of course) by systemd, which was first released in 2010. Despite using a rolling release model, it also usually uses pretty old software.

PCLinuxOS is perhaps best suited to beginners that do not need exotic software, like a no thrills and 2000s-esque desktop experience and favour a rolling release model. If somehow, despite being beginners, they have an opinion on init systems and dislike systemd, they may also like PCLinuxOS. Another advantage of PCLinuxOS over other distros is that its installation media comes with Broadcom WiFi drivers pre-installed, which would be useful for users installing to a PC with a Broadcom WiFi chip. I cannot even name another Linux distribution that falls into this category.

Pop!_OS

Initial release 27 October 2017
Website pop.system76.com
Release model Fixed
Modernity1 Old stable14
Installer elementary Installer—graphical.
Package manager (type) APT (binary)
Packaging file(s) Per Debian
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Large
Base install3 Compete
Documentation4 None15

Pop!_OS originally used a customized GNOME desktop but its team has been developing a desktop environment written in Rust called COSMIC. It is beautiful by default. Pop!_OS is developed by the computer manufacturer called System76. According to its website, it is aimed at STEM and creative professionals. It does seem fairly beginner friendly from my experience with it, but it does use pretty old software due to it, at the time of writing (26 January 2025), being based on the previous long-term support (LTS) release of Ubuntu. I would recommend Pop!_OS to users that want an eye candy desktop by default, do not mind older packages and prefer a fixed release distribution.

Rhino Linux

Initial release 8 August 2023
Website rhinolinux.org
Release model Rolling
Modernity1 Bleeding edge
Installer Calamares—graphical.
Package manager (type) Nala (binary), Pacstall (source) and distro-agnostic package managers (binary).16
Packaging file(s) Per Debian, plus Pacscript (shell script).
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Vast
Base install3 Complete
Documentation4 Medium

Rhino Linux is a Ubuntu derivative that gets its core packages from the Ubuntu developmental branch. Rhino Linux is the only Ubuntu-based distribution that I am aware of that follows a rolling release model. It is specifically designed with developers in mind and comes with VSCodium pre-installed.

It also comes with pacstall — a package manager that provides access to a repository designed to be the Ubuntu counterpart to the Arch User Repository — pre-installed. Rhino also has a setup wizard that offers users four different distribution-agnostic package formats that the wizard can add support for onto their system — namely Snap, Flatpak, Nix and AppImages (with the AppImage manager AM). Rhino has a wrapper for each of its package managers (including the distribution-agnostic package managers) that is called rhino-pkg.

Its default desktop environment is a customized Xfce desktop featuring a dock on the left of the screen along with a global menu. This customized desktop they call "Unicorn". Unicorn has a default look that features a lot of purple, black and white that appeals to my eye, at least.

I would say that Rhino Linux is probably ideal for developers. Especially those that:

  • Prefer a rolling release model.

  • Prefer graphical approaches to installation and package management.

  • Have obscure software needs.

  • Like eye candy distributions.

  • Prefer the Xfce desktop.

  • Like Ubuntu-based distributions.

  • Prefer using shell script to package for their system.

  • Want the very latest software.

I personally rather like this distribution as it addresses many of the problems I had with Ubuntu when I stopped using it as my daily driver around 2015.

Slackware Linux

Initial release 17 July 1993
Website www.slackware.com
Release model Fixed
Modernity1 Stable
Installer Slackware Installer—Textual.
Package manager (type) pkgtools
Packaging file(s) SlackBuilds—shell script
Compiler GCC
Init system SysV
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Medium-small
Base install3 Minimal or complete
Documentation4 Medium

Slackware Linux is the eldest Linux distribution still in active development. An important characteristic of it is that its official repositories are fairly small and mostly just contain the packages that one can install from the live medium and updates thereof. There are unofficial repositories, but even they are not very large. This is largely because on Slackware it is expected that most non-core packages will be manually compiled from source using SlackBuild scripts.

Another important characteristic of Slackware is that its developers are fairly conservative in that they are reluctant to adopt divisive pieces of technology like systemd, and often ship pretty old and well-tested versions of the software included in the system. I say they, but Slackware technically has a Benevolent Dictator for Life named Patrick Volkerding, who was its original creator back in 1993. It is also worth noting that stable releases of Slackware have become fairly rare. The period between release 14.2 and 15.0, for instance, was 5 years and 7 months, roughly.

I have tried Slackware many times and I have found its approach to package management frustrating. That being said, it is rock solid stable and if you are nostalgic for how Linux distros were like in the 1990s and like its approach to package management, it may be a suitable distribution for you. Especially if you are dislike the inclusion of systemd in most other modern Linux distributions.

Solus

Initial release 27 December 2016
Website getsol.us
Release model Fixed
Modernity1 Stable
Installer Calamares—Textual.
Package manager (type) eopkg
Packaging file(s) package.yml—YAML file.
Compiler GCC
Init system SysV
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Medium-small
Base install3 Minimal or complete
Documentation4 Medium

Like PCLinuxOS, Solus is a Linux distribution aimed towards beginners, despite following a rolling release model. As its package manager, it uses eopkg—which is based on Pardus' abandoned package manager of PiSi. It is the original distribution that the Budgie desktop was developed for, and is noted for its relatively good default aesthetics.

Its ideal use case is probably a beginner that does not need exotic software, appreciates a beautiful and simple desktop like Budgie and does not want to have to upgrade their system between releases of a fixed release distribution like Linux Mint for fear of system breakage. Granted, system updates on a rolling release system can break things too, so this should be factored in when considering PCLinuxOS.

Ubuntu

Initial release 20 October 2004
Website ubuntu.com
Release model Fixed
Modernity1 Stable
Installer Ubiquity—graphical.
Package manager (type) APT (binary) and Snap (binary).
Packaging file(s) Per Debian.
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Very large
Base install3 Complete
Documentation4 Medium

Ubuntu is a Linux distribution based on Debian (testing) and has been the go-to beginner-friendly distribution since its first release in 2004. It was created by South African enterpeneur Mark Shuttleworth and is maintained by his company Canonical. Many consider Ubuntu responsible for a lot of the changes in the Linux world that have made Linux distributions more accessible to novice users. Canonical has also been an innovator in other ways, such as by developing the Ubiquity system installer, Upstart init system, the Snap distribution-agnostic package manager, Mir display server and Unity graphical shell. Although, Upstart is no longer developed and Unity is no longer under development by Canonical. Ubuntu was an early adopter of each of these technologies.

New Ubuntu releases come out every six months, usually in April and October of every year since its initial release in October 2004. In April of even-numbered years, there are long-term support (LTS) of the distribution that receive about five years of support. Other releases receive nine months of support. The nine monthly releases usually come with the latest desktop environment releases or near to it, and a fairly modern kernel.

Ubuntu is ideal for beginners that favour a fixed release cycle. Given its two types of editions one with long support periods, it gives users a lot of choice for when they will need to upgrade their system.

Ubuntu is a very popular base for other distributions. I am not going to cover all Ubuntu derivatives, some that I will not cover separately that are of note are KDE neon, Linux Lite, TUXEDO OS and Zorin OS. I am not covering these distributions separately as I do not see them as innovative enough to warrant it. This is not to insult the developers, they are perfectly acceptable distributions to use and I can definitely see work that went into them, but I do not have enough to mention about them to warrant a separate section.

KDE neon is a semi-rolling release distribution as its core system software is based on Ubuntu LTS releases but its KDE software is bleeding edge. It is not especially beginner friendly and its ideal users are KDE fans that want to try out the latest KDE software as soon as it is published.

Linux Lite is a beginner-friendly and fairly light Ubuntu LTS-based distribution. It has a beautiful default look that resembles Windows.

TUXEDO OS is a beginner-friendly Ubuntu LTS-based distribution developed by TUXEDO Computers in Germany. It has its own control centre.

Zorin OS uses a Windows-like layout and is aimed at beginners as well.

Vanilla OS

Initial release 29 December 202217
Website vanillaos.org
Release model Fixed
Modernity1 Stable
Installer Vanilla Installer—graphical.
Package manager (type) OSTree (read-only root), distro-agnostic package managers18 and Apx (applications).
Packaging file(s) Any, due to Apx.
Compiler GCC
Init system systemd
C standard library glibc
Userland GNU
Shell Bash
Repository size2 Vast
Base install3 Complete
Documentation4 Medium

I would like to start this section by mentioning that I have not been able to install Vanilla OS, as the installer repeatedly fails for me. That being said, Vanilla OS uses a Debian (unstable) base (although, it previously used a Ubuntu base) and an immutable root file system. Actually, it has two root file systems. One is booted by the user, the other is the one to which updates are applied. This is so that users can boot this updated system at their next reboot but have their other root file system as a backup should the update break their system. Vanilla OS uses Apx (pronounced "apex") which uses containerized Linux distributions to provide access to software packaged for that distribution.

Vanilla OS sounds ideal for at least intermediately experienced users that have plenty of available disk space, want a Debian-based immutable system and access to packages that Debian does not provide. The requirement for a lot of disk space is due to the two root file systems and containerized Linux distributions to provide additional packages, both of which substantially more space than most distributions would need.

Void

Initial release 2008
Website voidlinux.org
Release model Rolling
Modernity1 Bleeding edge
Installer Void Installer—textual.
Package manager (type) X Binary Package System (XBPS; binary)
Packaging file(s) template—shell script
Compiler GCC
Init system runit
C standard library glibc/musl
Userland GNU
Shell Bash
Repository size2 Medium-small
Base install3 Minimal
Documentation4 Minimal

Void is a Linux distribution that is similar to Arch Linux in that it follows a rolling release model and uses a fast, lightweight package manager written in C that uses shell script packaging files for building its packages. A base install without a GUI is about 3GB in size. It has a fairly small development team, but I find it an interesting system. It boots rather fast by default and it has a nice air of Arch Linux-style simplicity.

Void is ideal for experienced users that are content with the software in Void's relatively small repositories, prefer shell script for packaging, want a fast package manager, do not mind a command-line installation process, prefer runit to systemd, and would prefer the option to use musl instead of glibc.

Footnotes

  1. The possible categories are, in ascending order of modernity: old stable, stable, cutting edge and bleeding edge.
  2. It is difficult to rate this in a completely non-subjective way. As while you can list the number of packages in their repositories, some distributions package split a single piece of software into multiple packages and hence raw numbers are not as fair a measure as they seem. Plus some distributions have multiple variants on more or less the same package in their repositories. To simplify things, I will categorize repository size as: vast, very large, large, medium, medium-small, small and tiny.
  3. A distribution will have "minimal" in this category if the base installation comes without a graphical user interface (GUI). If a GUI is a required part of a base install, I will say "complete".
  4. The categories, in ascending order of documentation sufficiency, are: minimal, medium, detailed and comprehensive. Minimal documentation would typically just cover installation, package management and basic configuration. Medium would cover more configuration options than just basic. Detailed would cover some additional topics. Comprehensive would cover almost every conceivable topic for the distribution.
  5. This is for the stable branch. Testing and unstable — which are the distribution's developmental branches — are cutting edge and bleeding edge, respectively.
  6. I see that Paludis, Exherbo's package manager, has its first changelog entry on 17 January 2006. This is why I assume this was when Exherbo was established.
  7. This is the default, but there are instructions for how to install other init systems.
  8. This is the default. It is possible to install more bleeding edge software by adjusting Portage's keyword settings.
  9. The earliest news about Guix System that I found was that the Free Software Foundation added it to their list of free Linux distributions on 3 February 2015. The earliest blog post on the GNU Guix website that mentions Guix System was from 12 May 2015. The first announcement of a release that I found on their website was from 29 March 2016.
  10. Earliest release in DistroWatch's database is the 2009 release which was reported on 14 September 2009. NuTyX's website has a copyright notice that begins in 2007, so its first release could be as long ago as 2007.
  11. Earliest release in DistroWatch's database is the 1.1 release which was released on 4 August 2009. This was meant to be an update to the earlier release of openmamba GNU/Linux 1.0.
  12. This I say based on this news release from DistroWatch.
  13. Source: Portal:Tumbleweed at openSUSE Wiki.
  14. This is based on the fact that the latest release as of 26 January 2025 is based on Ubuntu 22.04.
  15. I checked the Pop!_OS website and could not find documentation on it.
  16. I mention these, even though I omit them in most distro's infoboxes, because Rhino Linux has options to enable cross-distro package managers/formats in its setup wizard. Specifically, it allows users to enable Flatpak, Nix, Snap or AppImages.
  17. Vanilla OS 22.10 was this release and it was the first release mentioned in the Vanilla OS blog.
  18. I say this because Flatpak installation instructions and Homebrew installation instructions are given in Vanilla OS's documentation.