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 Distros | Derived Distros | Flavors |
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 Repositories | They 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 them | They 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, Slackware | Example: 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 Distros | Derived Distros | Flavors |
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 Repositories | They 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 them | They 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, Slackware | Example: 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!