DEV Community


Discussion on: Explain the different popular Linux distros

taylorbeeston profile image
Taylor Beeston


To start talking about different distributions, I think it's important to first preface with a reminder that Linux is simply the kernel underneath all of these distros, which means it is a very thin hardware layer that provides a common development platform to build upon. To build out the rest of the OS, we need something like Busybox, Toybox, or GNU Coreutils to provide us with things like a shell and basic text manipulation. Knowing this, you may find that (almost) all distros are extremely similar because they all share these foundational layers. Most desktop distros are going to use GNU Coreutils. They are also (almost) all using either Xorg or Wayland for display, and many use Systemd for init.

So what's different?

Generally speaking, the main differences between distros are the package manager and the packages. I like to explain the package manager to non-Linux people as being like the App Store for your computer. Packages (apps) are stored in the distro's repository, and the package manager makes installing/updating/managing your packages trivially easy (hopefully).

So what are the big ones?

As can be seen here, there are tons of Linux distros, but they all really sort of come from Debian and Red Hat, with some honorable mentions being Slackware, Arch and Gentoo. Some modern choices for Debian-based distros are Debian, Ubuntu, Mint, Elementary OS, and Pop!_OS. Red Hat distors would include Red Hat, Fedora and CentOS. There's also Arch, Manjaro (very similar to Arch), and Gentoo.

What are the differences between them?

Debian uses the (wonderful) package manager apt, Red Hat uses rpm, Arch uses pacman, and Gentoo uses portage (invoked with the emerge command). The technical differences between these package managers is really not something too many people need to care about with the exception of portage, because it installs packages by compiling them from source every time (meaning installing/updating takes a significantly longer time, but you have much finer control over your software). It's mostly just a syntactic difference between them. The real difference comes from the packages themselves, as well as how they're distributed.

Release Models

The release model of packages is probably one of the bigger determining factors when choosing an OS. It basically determines how stable your OS will be vs. how up-to-date your packages will be.

Rolling Release

Under a rolling release model (such as that of Debian unstable or Arch), packages in the repo are updated as soon as a new version comes out. This means you are constantly getting the most up-to-date software, however bugs are more frequent and it is very difficult to guarantee that packages will work correctly together.

Fixed Release

Under a fixed release model (such as that of Debian stable), only security and stability updates are added to the repo until a new major version of the OS comes out. This means that you are more likely to get outdated packages, but a much more stable experience.

What else is there?

If packages, package managers, and release models were all there were to choosing a distro, there wouldn't be so many choices! There are all kinds of differences between distros, and probably the best way to get a feel for what one does over the other is to just spend a couple minutes on their websites! Some of the common differences you'll likely find are:

  • Ease of installation
    • Ubuntu is extremely straightforward whereas Gentoo will likely take you at least a full day
    • This is probably the biggest difference between Arch and Manjaro
  • Desktop Environment choices
    • Main choices are Gnome, KDE, XFCE, LXDE
    • This is where Kubuntu, Xubuntu, Lubuntu etc appear
    • Some people (like myself) prefer not to use a DE and instead prefer just a Window Manager like i3. This is easier to set up in some distros compared to others
  • Xorg vs. Wayland
    • Xorg is extremely old and has fundamental problems, Wayland is new, but is not fully supported by everything yet
  • Init System
    • Basically Systemd vs. everything else
    • I don't mind Systemd too much, but many people dislike it based on its developers and the way that it seems to swallow everything it can
  • Default packages
    • Some distros are meant to be extremely minimal, while others try to come out giving you every program you could ever need out of the box
  • Devotion to Libre Software
    • Some distros will absolutely not allow you to install proprietary software of any kind, or at least give you that option, while others simply have no problem with proprietary software at all

There are many, many other differences between distros, but hopefully this helps to clarify a lot of the big ones, and helps you to make an informed decision should you decide to try switching over!