GNU/Linux Distributions - Type Hierarchy

Introduction

There are tons of GNU/Linux Distributions out there. Debian, Ubuntu, Linux Mint, Pop!_OS, EndeavourOS, Garuda, Kali Linux and Manjaro are just some of the popular ones. What’s more interesting is the way they all are different from one other.

We get to hear a lot of Linux Mint is based on Ubuntu and Ubuntu is based on Debian on forums and subreddits on the Internet. But, the way one GNU/Linux Distribution is based on the other is something that greatly varies.

To get (and give) clarity on the same, I’ve prepared something that has the potential to differentiate GNU/Linux Distributions largely on four characteristics and I call it GNU/Linux Distributions - Type Hierarchy.

Diagram

GNU/Linux Distributions - Type Hierarchy

Explanation

A. Independent/Dependent

Represents whether a GNU/Linux Distribution is dependent on a pre-existing GNU/Linux Distribution or not.

If it largely takes packages (source/binary) from another GNU/Linux Distribution then it is Dependent. If it directly takes source/binaries from the originating upstream, it is Independent.

EXAMPLE

Debian packages everything from scratch i.e. for FOSS packages, it compiles them and packages them. For non-free packages, it takes the binary from the originating upstream and package it in DEB format. Debian is Independent of any other GNU/Linux Distribution.

Ubuntu also packages everything from scratch, and compiles the FOSS packages itself. But, it takes the source code from source DEB packages of Debian instead of originating upstream directly. Ubuntu is Dependent on Debian for source DEB packages.

B. Source/Binary

Represents the type of dependency of a Dependent GNU/Linux Distribution.

Is it Dependent on another GNU/Linux Distribution for Source code or for compiled Binaries?

EXAMPLE

Ubuntu is dependent on Debian for Source DEB packages.

Linux Mint is dependent on Ubuntu for compiled Binary DEB packages.

C. Singular/Plural

Represents whether the final installation of a Binary Dependent GNU/Linux Distribution is a result of packages installed from sources/repositories under the ownership of a single (Singular) entity or is an amalgamation of packages installed from multiple sources/repositories under the ownership of different (Plural) entities. Docker Containers, Flatpaks, Snaps and AppImages are excluded from this consideration.

EXAMPLE

Ubuntu hosts dedicated package repositories and a default installation only utilizes these repositories. Hence, an Ubuntu installation is Singular.

Linux Mint hosts dedicated package repositories as well, but those only contain limited number of packages. A default installation of Linux Mint utilizes Ubuntu LTS repositories and overlays Linux Mint repositories on top of that. Hence, a Linux Mint installation is Plural.

D. Complementary/Supplementary

Represents the nature of a Plural Binary Dependent GNU/Linux Distribution.

Does it complements the GNU/Linux Distribution it depends upon by fundamentally changing it (replacing a subset of packages, making configuration changes and adding more packages) and creating a new better whole or does it supplements the GNU/Linux Distribution it depends upon by simply adding additional value to it (making configuration changes and adding more packages) ?

EXAMPLE

KDE Neon compliments Ubuntu by replacing all KDE packages with the most updated ones from KDE Neon’s package repositories (PPA). It also provides a minimal footprint out of the box. Hence, KDE Neon is Complementary in nature.

EndeavourOS compliments Arch by providing a convenient installer, sane defaults out of the box, additional GUI utilities and themes. But, it does not replace anything from Arch. Hence, EndeavourOS is Supplementary in nature.

Limitations

The above discussed hierarchy isn’t the absolute and most foolproof way to distinguish between any two given GNU/Linux Distributions.

For an instance, Pentoo is based on Gentoo. But, Pentoo is neither Source Dependent nor Binary Dependent on Gentoo because Gentoo is not a binary software distribution. The source code is compiled locally according to the user’s preferences and is often optimized for the specific type of computer. Pentoo is Dependent on Gentoo for the Ebuild files that are used to fetch source directly from the originating upstream and compile it locally. Therefore, we can say Pentoo is Ebuild Dependent on Gentoo.

It is also interesting to note that there will be some exceptions in most of the GNU/Linux Distributions identified using this hierarchy. For an instance, Ubuntu is Source Dependent on Debian. But, there might be some proprietary firmware blobs for which there is obviously no source code. As a result, these would be taken from Debian as compiled binaries only, which violates the fact that Ubuntu is Source Dependent on Debian, if considered absolutely. Therefore, the GNU/Linux Distributions must be identified on the basis of questions like What constitutes the most to a GNU/Linux Distribution’s existence? or What largely makes a GNU/Linux Distribution what it is?. With that, we can easily say that though there are some exceptions, but largely Ubuntu is Source Dependent on Debian.

There have to be more examples that can make this hierarchy fail, but it still remains a better way to convey the relationship among GNU/Linux Distributions as compared to using the term Based, for most of the popular ones if not all.

Conclusion

A statement like Linux Mint is based on Ubuntu gives almost no clarity on how Linux Mint is based on Ubuntu. Now that we have had an understanding of the hierarchy discussed in this post, statements like Linux Mint is Complementary Plural Binary Dependent on Ubuntu, Manjaro is Singular Binary Dependent on Arch and Debian is Independent give us way more detailed insights into the development model and structure of a GNU/Linux Distribution.