logo

Which Linux Distro Should I Use?

What is a Linux distro?

Linux distro = Linux Kernel
               + (GNU) tools and libraries
               + desktop environment
               + package manager
               + other software

How are the Linux Distros Different?

Kernel

The word "Linux" actually refers to the Linux Kernel. That is why sometimes you may see the term GNU/Linux: GNU provides tools on top of the kernel.

Linux distros all use Linux kernel, though the versions may be different. The Linux kernel community promised that no upgrade will ever break anything that is currently working in a previous release.

The LTS vesion is shortened from 6 years to 2 years starting from 2023.

Source code: https://github.com/torvalds/linux

Components

  • tools and libraries
    • C standard library: e.g. glibc, musl, etc. Read More: Standard Libraries
    • Utilities:
      • coreutils (GNU)
      • BusyBox: a software suite that provides several Unix utilities in a single executable file, created for embedded operating systems with very limited resources. GPLv2
      • Toybox: a 0BSD licensed BusyBox alternative, used in AOSP
  • desktop environment: GNOME, KDE, XFCE, etc
  • package manager:
    • APT / dpkg: Debian and derivatives.
    • RPM: Redhat and derivatives.
    • pacman: Arch and derivatives.
    • postage: Gentoo and derivatives. (e.g. ChromeOS)
  • init systems
    • systemd: most major distros use this
    • OpenRC is the default init system of Gentoo, Alpine Linux
  • Supported chips / architecture: x86, x86_64, ARM, etc.

Release and Support Schedules

Some distros do rolling releases while others only release stable versions every a few years. Some distros do both, e.g. Debian has Debian stable and Debian testing.

Some distros are backed by companies and may offer 10+ years support, while some distros are maintained by community, and may not have LTS versions.

The Origin of the Support Provider

In some cases the location of the distro's parenet company matters. E.g. Ubuntu is backed by Canonical, whose headquaters are in London, whic makes it not suitable for some sensitive projects in the US; while CIQ, provides support for Rocky, and CIQ is located in the US.

Notable Linux Distros

The 3 big groups:

  • Debian: including various distros derived from Debian and Ubuntu.
  • RedHat: RHEL, Rocky, Fedora, and now discontinued CentOS, etc.
  • Arch: also includes Manjaro, SteamOS, etc.

There are other noteworthy distros that do not belong to these 3 groups: Gentoo, ChromeOS, Android, Slackware, etc.

RedHat / CentOS / Fedora

TL;DR:

  • Previously: Fedora > RHEL > CentOS
  • Currently: Fedora > CentOS Stream > RHEL > Rocky/Alma/Oracle Linux

Notes:

  • Fedora is the community version. Focusing on innovation and integrating new technologies. Each release is supported for 13 months; it does NOT provide Long Term Support, so not suitable for enterprise use. It is the upstream of this big group of OS distros.
  • RHEL (Red Hat Enterprise Linux) as the name suggests, is primarily for enterprise use. Previously it was considered as downstream of Fedora, now it is the downstream of CentOS Stream.
  • CentOS was the open source version; discontinued in 2020; previously a downstream distro of RHEL. Many new distros are created to fill in the void left by CentOS, most notably Rocky and Alma.
  • CentOS Stream is NOT a replacement of CentOS, but will be a rolling preview of what's next in RHEL.
  • Rocky Linux (backed by CIQ): created to replace the discontinued CentOS.
  • AlmaLinux (backed by CloudLinux): another CentOS replacement.
  • Amazon Linux: Based on Fedora, major release every 2 years, with 5 years of support and quarterly minor release updates. https://aws.amazon.com/linux/amazon-linux-2022
  • OpenELA: Open Enterprise Linux Association, a RHEL clone, which uses the RHEL older patched kernel.

Common features:

  • use yum as package manager.

Debian / Ubuntu

  • Ubuntu is derived from Debian. LTS (Long term support, supported for 5 years) versions every 2 years. Ubuntu is a very popular Desktop Linux.
  • use dkpg / apt as package manager.
  • many Debian / Ubuntu derivatives:
    • MX Linux: based on Debian stable.
    • Linux Mint: based on Ubuntu.
    • Pop!_OS: based on Ubuntu, by System76. System76 is building a new desktop environment in Rust: "There are things we'd like to do that we can't simply achieve through extensions in GNOME".
    • Elementary OS: based on Ubuntu.
    • Zorin: based on Ubuntu, Windows-like.
    • Kali: based on Debian, security oriented.
    • Raspberry Pi OS: 64-bit available since 2022.
    • gLinux: Google internal, based on Debian; not publicly available.

Ubuntu has Desktop and Server versions. The default page size for Ubuntu Server is 4K, there's also a 64k page size version of Ubuntu Server for running memory-intensive applications.

Arch Linux

Can be fully customized.

Derivatives:

  • SteamOS: 1.0 and 2.0 were based on the Debian, 3.0 is changed to be based on Arch Linux. (Because Debian is more for servers, and has release cycles; Arch uses a rolling update, which is prefered by Valve for Steam Deck)
  • Manjaro: baesd on Arch but much easier to use. Manjaro is Arch-based but it isn’t Arch Linux.
  • EndeavourOS: lightweight and ships with a minimum amount of preinstalled apps. Since 2019. As close to plain-vanilla Arch as you can get, without hand-assembling Arch Linux the hard way.
  • Garuda: performance oriented.

Gentoo / ChromeOS

  • Gentoo: source-code-based. Named after the fast-swimming gentoo penguin, to reflect the potential speed improvements.
  • ChromeOS: originally based on Debian, but later moved to Gentoo.

Slackware

Slackware is the oldest distribution that is still maintained (created in 1993), Debian is the 2nd oldest. Highly customizable. The first vesions of SUSE was based on Slackware.

Android

Yes Android is also based on Linux; however Google's new OS, Fuchsia, is not based on Linux, but a microkernel called Zircon.

Read more on Android

GoboLinux

https://gobolinux.org/

Different file hierachy: each program gets its own directory tree.

Clear Linux

https://clearlinux.org/

Optimized for Intel's microprocessors with an emphasis on performance and security. Rolling release.

gLinux

Google's internal distro.

The first version was named Goobuntu, which was based on Ubuntu.

In 2018, Google moved from the Goobuntu to gLinux, which was based on Debian testing, with rolling releases, to avoid the 2-year release cycles.

For corp machines (directly used by developers to write and test code) only, not for prod (where the services like Google Search runs).

Lightweight Linux Distros

Alpine Linux

https://alpinelinux.org/

Small, simple and secure. Often used for containers in clouds.

Using musl, BusyBox, OpenRC instead of the more commonly used glibc, GNU Core Utilities, and systemd.

Compare the image sizes by docker pull debian / docker pull alpine etc:

  • debian: 116MB
  • ubuntu: 77.8MB
  • alpine: < 10MB

Use apk to manage packages:

$ apk add --no-cache $PACKAGE

Tiny Core Linux

Size: 11 to 16 MB; with GUI.

Puppy_Linux

Size: 300MB(32-bit) 600MB (64-bit).

Can run entirely from RAM;s with GUI.

Conclusion

  • if you are new to Linux, or use Linux as your desktop, choose Ubuntu or its popular user friendly derivatives.
  • if you are working on Linux servers, get familiar with Debian and/or RedHat (CentOS used to be popular on servers, but things changed.)
  • if you are a hardcore Linux user, or simply want to learn more, choose a more customizable distro: Arch, Gentoo or Slackware.
  • if you have specific use cases, search for the best option for the job: if you are working on security and doing Penetration Testing, choose Kali; if you want to deploy applications in container / cloud, choose a small distro like Alpine.