Linux Distros vs Flavors vs Derivatives: Differences Explained!

During their journey in exploring the Linux universe every Linux beginner will come across to these 3 very similar terms, Distro, Flavors, and Derivatives. In this article, I have presented the differences between these 3 terms in a beginner-friendly format along with the prior knowledge every beginner needs to have to understand them.

So let’s begin!

Let’s have a brief look at the differences.

The differences at a glance

original DistrosDerived DistrosFlavors
These are usually put together from zero These are forks (Taking a copy and making changes)of original Distros.
The core packages need not be the same as the original distro
They have the same core packages as the original Distro they are flavors of.
Have their own RepositoriesThey usually have their own software repository for hosting packages.They usually share the same software repository as the original
They support downloading and installing most of the packages that original distro supports but not all of themThey support downloading and installing all the packages that work on the original distro.
They are usually maintained by a different set of people as the main goal of the derivative differs from the main goal of the original distro.They are usually maintained by the same people that maintain the original distro as the main goal of the flavor is usually the same as the main goal of the original distro.
Examples: Debian, SUSE, RedHat Enterprise Linux, SlackwareExample: Linux Mint is a derivative of Ubuntu
Examples: Kubuntu, Xubuntu, etc are flavors or Ubuntu

These are the brief differences between those 3 terms.

If you can’t understand the table above then read on as before we can understand the differences between these 3 terms, first we must understand what every Linux distro is made of. Let’s go ahead and see that!

The Various Parts of Any Given Linux Distribution

A Linux distro is basically made up of 2 parts

  • The Linux Kernel and 
  • Software packages that work with the Kernel to give us a complete Operating System

These packages can be application software like text editors, word processors, etc. or they can be the GNU utilities like bash, cron, dd, etc., or they can also be device drivers to talk to the hardware.

2 Types of packages

In the Linux world, there is an alternative to everything you can think of, be it the desktop environment, the package managers, init system, bootloaders, applications like browsers, text editors and word processors. Some of these packages can be easily replaced.

For example, if you don’t like a particular browser, then you can always install the one you like or if you don’t like the Unity desktop in Ubuntu, then you can always install KDE or GNOME desktops.

But some of the other packages that come with a distro cannot be changed, or not at least without headaches. For example, if you don’t like systemd (the latest initialization system), then you can’t just uninstall it and install upstart or init (older initialization systems). You can do that, but unless you are an expert and you know exactly what you are doing, you can end up with a broken OS.

Thus based on ease of replacement, these software packages can be further divided into 2 major types.

  • Core packages
  • Non-Core packages

Core Packages

Each Linux distro comes with its own set of these “not to easy to replace” packages. That’s what makes each one unique. Some examples of these include the init system and the package management system. One of the important facts that make each distro unique is this set of these core packages which are selected, configured, compiled and distributed to you as a part of the Distro.

In short, core-packages are not so easy to replace.

Non-Core packages

These are considered to be easily replaceable by a typical user. Examples include application software like browsers, text editors, office suites, etc. These apps can usually be installed in any distro as long as it’s available in the required format.

So a Linux Distro can be thought of as a combination of the Linux kernel, Core packages, and non-core packages, all combined together to make an operating system distributable over the internet.

Repositories

These packages can usually be installed and updated from software repositories maintained by the distributor of the particular Linux OS. The source code of various Linux packages are compiled to work with a particular distro and stored in a distributable package in these

Though the repository is usually present on the internet on some server, the repositories are unique for a given Linux distro. So the repository can be considered as another part of a given Linux distro.

If you are interested to learn more about packages, package managers and repositories I suggest you read this other article A Beginners Introduction To Linux Package managers: apt, yum, dpkg & rpm. There I have explained

  • What are packages in a Linux system
  • Content of packages
  • Need for package managers
  • Need for repositories
  • Functions of package managers and
  • the architecture of packages managers

Alright the background information part is over, let’s get back to the focus of this article which is the difference between flavors, Distros, and derivatives

Distros

Each Distro has its very own set of core packages and non-core packages and they usually maintain a repository with prebuilt packages of software that we can download and install on our systems.

Original Distros vs Derivatives vs Flavours

Now that you have understood what Linux Distros are, let’s go and look at 2 main types of distros

  • original distros and
  • derivative distros

Original distros

Making a Linux distro from zero involves a lot of work to put all the packages and the Linux kernel together into a single “distributable” Operating system.

Original distributions are those that are made this way from zero. In other words, these original ones take the kernel, GNU utilities, application software, etc. and combine them into an installable operating system and distribute them to the end-users usually over the internet. Popular examples of original distros include Debian, RedHat, Slackware, etc.

Derivative distros

Derived distros are ones that take one of these original distributions, make some changes to it, so that its more suitable for a specific purpose and then distribute them as an installable operating system.

For example, Debian is an original distro and all the distros derived from it like Ubuntu, Mint, Knoppix, etc are derived Distros.

Derived Distros have different goals as compared to their originals. They usually depend on the original Distros to some extent (for the parts that have not been changed), but they tend to take on their own routes when it comes to future developments, to make it suitable for the purpose it was created for.

You can have a look at the entire family tree of Linux over at distrowatch.com in this link

Flavors

Flavors, on the other hand, share the same goals of the original and usually are simple changes made to the Original Distro to accommodate the wishes of a certain division of users.

For example, some people dislike the Unity desktop environment of Ubuntu, but they are happy with everything else the distro has to offer. So for making these users happy several flavors of Ubuntu came out like Xubuntu which uses Xfce desktop, Kubuntu which uses KDE desktop, etc.

Other than the desktop environment, all of these Distros share the same core packages, same init system, same package management system, same goals as Ubuntu and they all use the same repositories to download and install software.

Let’s have a look at our table again.

original DistrosDerived DistrosFlavors
These are usually put together from zero These are forks (Taking a copy and making changes)of original Distros.
The core packages need not be the same as the original distro
They have the same core packages as the original Distro they are flavors of.
Have their own RepositoriesThey usually have their own software repository for hosting packages.They usually share the same software repository as the original
They support downloading and installing most of the packages that original distro supports but not all of themThey support downloading and installing all the packages that work on the original distro.
They are usually maintained by a different set of people as the main goal of the derivative differs from the main goal of the original distro.They are usually maintained by the same people that maintain the original distro as the main goal of the flavor is usually the same as the main goal of the original distro.
Examples: Debian, SUSE, RedHat Enterprise Linux, SlackwareExample: Linux Mint is a derivative of Ubuntu
Examples: Kubuntu, Xubuntu etc are flavors or Ubuntu

I hope this time you can understand the table better!

A Little Side note

Some of you may be confused and probably wondering

is Ubuntu is a derivative or an original ?.

If you look at Debian and Ubuntu together, then Ubuntu is a derivate. But if you look at Ubuntu and Mint story then Ubuntu is the original there. Strictly speaking Linux Mint is the derivative of a derivative.

But I was using these Distros as an example just to make a point so that you can see the differences between these 3 terms better!

And with that, I will conclude this article!

I hope you guys enjoyed this article and learned something useful.

If you liked the post, feel free to share this post with your friends and colleagues!

Related Articles

A Beginners Introduction To Linux Package managers: apt, yum, dpkg & rpm

Can You Make A Linux Distro And Sell It? An Analysis!

How Do Linux Distros Make Money? Strategies Explained!

A Step By Step Plan To Learn Linux..!

Photo of author
Editor
Balaji Gunasekaran
Balaji Gunasekaran is a Senior Software Engineer with a Master of Science degree in Mechatronics and a bachelor’s degree in Electrical and Electronics Engineering. He loves to write about tech and has written more than 300 articles. He has also published the book “Cracking the Embedded Software Engineering Interview”. You can follow him on LinkedIn