Skip Navigation

What are the differences between the 'base' of various Linux distributions?

I've been using linux desktop for a year or so now. One noteable thing i keep seeing is that one person will say I dont like XYZ distrobution because of its base. But I am still a little unsure what is meant by it. I am assuming the main difference between each base is the choice of package management(?). But what other factors/aspects that are important for the average user to know about each 'base'? This is probably quite a broad question to a rather technical answer, but appriciate any answers, and i'll try my best to understand and read up :)

41 comments
  • There are a few "grandfather"-distros out there, for example Debian and Arch. They've been around for a few decades now.

    Then, they got kinds, because some people said "I don't like xy, I will do it better", but granddaddy disagreed, so they split apart.
    That's what Ubuntu is to Debian for example, that's why Ubuntu is Debian-based. They are related to each other (e.g. the same package manager), but differ in some things (e.g. update cycle).

    This cycle of forking continues, that's how Mint got there for example. Mint is based on Ubuntu, and Ubuntu is based on Debian.

    But nowadays, the gap between distros gets smaller, with things like Distrobox, Nix, Flatpaks, and more. I wouldn't mind working with a PC that has Mint on it instead of Fedora. Sure, there are reasons why I prefer one over the other, but in the end, they're all the same.

    One example I can think of where the base matters, and not the package manager, is when adding an user to the sudo group. RedHat distros need another promt than Debian for example.

    But other than that, the thing that defines a distro are the packages, they make a distro unique.

    • The base tarball between Debian and Arch (locked to the same glibc) differ only very slightly in software composition stratified mostly by filesystem organization. One could actually make the case then, that the package manager is what differentiates the OS -- in which case, Arch's source code could be conflated to being pacman's source code

  • The linux landscape is very diverse and complicated... but a simplified description would be:

    A linux distro consists of:

    1. a kernel. the famous core project led by Torvalds and contributed to by thousands of others. This provides the low level functionality necessary for any computer to run. Contains basic stuff like file system, process management etc.
    2. a userland. This is all the stuff on top of a kernel like a desktop environment, applications(text editors, web browser, etc.), various utilities, a shell(often Bash) to alllow the user to communicate with the underlying operating system, a package manager to install new software, an init system (such as the famous systemd) etc.

    [Aside. The term "Gnu plus Linux" refers to a linux kernel complimented by the Gnu userland]

    When someone refers to a linux distro's base they would usually be referring to the composition of the userland that is included (though sometimes they might be referring to a modified kernel as well). So people who are familiar with the intricacies of the apt package manager (associated with Debian and others) might not like that Centos uses yum (though replacing the word apt with yum works on many commands [ e.g. sudo apt install myprogram].

    The desktop enivironment will use a particular file manager by default so that can be a point of friction for someone who swaps distro; menu design might be slightly different, icons in different places.

    If someone is used to systemd to start and stop services then relearning a new init system could be enough to stop them switching distro.

    A different terminal emulator can be used by different distros but to be honest with you I've never spotted any difference.

    Some distros choose different C libraries (musl, glibc) but if you are not a programmer this might never become apparent to you.

    Switching from one way of doing things on linux is usually not too difficult if you do it in small chunks but if you change a lot of things at the same time it can definitely be overwhelming.

    Also some distros are targetted at niche users. If you accidentally overwrite your os with a new distro and only then find out that there is no gui and networking isn't on by default and you have to edit your own network config to get internet working then you might avoid that distro in the future (Thankfully big distros like Debian, Ubuntu, Centos don't throw users in the deep end like this).

    Probably the single biggest hurdle holding back linux adoption is the vast amount of choice which can be very confusing for new users.

  • Something that often gets missed is the difference between packaging conventions between distros.

    For example, Debian has Apache httpd packaged as "apache2" and has wrapper scripts for enabling sites. Fedora/RHEL has "httpd" and includes conf.d from the main conf. Arch also has "httpd" but doesn't have a conf.d out of the box. Of course you can pretty much configue Apache to your heart's content and have an identical setup between all three distros.

    From what I've read, Debian tends to patch and change software to fit more into their overall system whereas Fedora and Arch tend to be more upstream.

    RPM and Arch both have group packages and metapackages. Debian just has metapackages AFAIK. Debian also has "recommended" and "suggested" levels of soft dependencies, the former which is enabled by default. RPM has the capability for weak dependencies but AFAIK most RPM distros don't use it. Arch doesn't have soft/weak dependencies AFAIK.

    When you install a new system daemon on Debian, it's generally enabled and started by default, whereas RPM-based and Arch don't do that.

    When I think of the base of the system I tend to think of some of those more subtle idiosyncrasies that tend to spread around the ecosystems, like Ubuntu and Debian behave quite similarly for instance.

  • A distribution distributes packages. Each base has its own set of packages, compilation flags or "package configuration", optimizations, release schedule, and overall goals.

    Besides technical reasons, people may not like some "bases" for political reasons too.

  • That's really hard to answer definitively without context. Obvs there's the kernel, but that's similar enough across distros that it's not really a point of contention that I know of. At a guess it might mean the distro it's "based" on, but that in itself could mean a few different things. There's stuff like package management, which you mentioned, and init style. That's where things get complicated.

    Like, Mint is based on Ubuntu, which itself is based on Debian. They share DEB / APT for package management and use systemd for init. OTOH, there's stuff like OpenSuse, which is originally based on SlackWare, but uses RPM (like redhat) for package management. OpenSuse uses systemd, but I think RedHat uses upstart and SlackWare uses a BSD-style init. It's been a while since I checked in on those last two.

    Of course they could also mean something like choice of desktop environment (as in "A Gnome-based distribution"), default package selection (what the installer refers to as a "base" install). They could mean the general philosophy or release schedule (rolling vs. point release). Or they could even be referring to the userbase (as in; "I use Arch, btw").

41 comments