Are you new to Linux and looking for a distro? You may see various confusing terms like Fork, Flavour or Remix when choosing a distro. In this article, I’m going to decode these terms to help you pick the distro that’s right for you. Basically, these terms describe how different Linux distros are related to each other. Some are like lone wolves, independent and standing on their own. Others are like cousins, derived from a common ancestor. And there are even distros that are like distant cousins, derivatives of derivatives!
Now, I know what you’re thinking – who cares, right? Well, here’s the thing: knowing if a distro is based on another can save you a lot of headaches. The main reason it is good to know if a distro is based on another distro and which one it is based on, is compatibility. Compatibility can affect everything from which apps you can use to what tutorials you should follow. For instance, let’s say you stumble upon an app that comes with a DEB package specifically labeled for Ubuntu. Chances are, it’ll also work just fine in Linux Mint – as long as it matches the version of Ubuntu the package was created for.
Knowing whether a distro is a derivative is key, but the terminology can be a lot to take in. There are numerous types of derivatives, and sometimes, different terms are used interchangeably to describe the same thing. So let’s start with the top 2 categories, Independent & Derivative. Independent is pretty straight forward, it’s a Linux distro that is unique so it’s not based on anything else. Things get a little trickier with Derivatives. These types of distros borrow components, tools, and maybe even infrastructure of another distro.
Okay, so here’s the deal. Some Linux distros have a family tree that would make the Kardashians jealous. You’ve got the big enterprise players like Red Hat, SUSE, and Canonical, and then you’ve got their community buddies like Fedora, openSUSE, and Debian. Here’s where it gets interesting: those enterprise distros are using their community buddies as building blocks for their own distros. Red Hat‘s using Fedora, SUSE is using openSUSE, and Canonical’s Ubuntu is using Debian. The enterprise companies give resources and contributions to their community counterparts and the community distros provide a foundation to base those enterprise products on top of. It can be seen as a symbiotic relationship of sorts because both sides benefit. Though that’s not the case for every derivative but we’ll get that.
There are 4 main types of derivative distros: Forks, Flavors, Remixes, and Clones with Remixes being the type that you will encounter the most. Additionally, you may come across other terms such as Spin, Respin, Edition, Reskin, and possibly others, but these are just alternative names for the primary types previously mentioned. I prefer Flavor and Remix rather than Spin and Respin because those are too similar in my opinion.
Let’s kick things off with Remixes. This term is the most all-encompassing way to describe a derivative distro. While some may argue that Remix and Derivative are interchangeable, I believe Remix sets itself apart by not being a Fork or a Flavor. Basically, a remix is a modified version of an existing distro that offers something new. Commonly, remixes change the desktop environment, but they can also vary in terms of pre-installed packages, or specializing in particular workflows like media production and gaming consoles, or specialized delivery systems like immutable systems. There are plenty of reasons why a remix might exist, these are just a few. The term Respin is sometimes used instead of Remix.
Flavors, Clones, and Forks can all fall under the umbrella of Remixes, each of them has additional criteria that distinguish them, so let’s talk about those.
Flavors are a specific type of derivative that remix an existing distribution. What sets them apart is that they are officially recognized and sanctioned editions by the original distro they are based on. This recognition doesn’t necessarily mean that the original distribution itself creates the Flavor, but rather that they acknowledge and support the efforts of a community project by providing resources and other benefits. Sometimes, the term “Spin” is used instead of “Flavor”.
Clones are derivative distros that essentially repackage an existing distro into a new one, without making significant changes. The primary aim of a clone is to closely mimic the distro it is based on. Clones often take the entire source code, create a copy, and establish a separate infrastructure to maintain and distribute the clone.
When it comes to clones, one distro that frequently becomes the subject of cloning is RHEL (Red Hat Enterprise Linux). Clones essentially repackage and rebrand the source code of RHEL, striving to maintain a high level of compatibility with software and applications designed for RHEL. The motivations behind creating derivatives can vary greatly, and in the case of RHEL clones, there’s a bit of complexity and even some drama involved. However, that’s a story for another time and not directly relevant to this video. If you’re interested in hearing more about the drama surrounding RHEL clones, let me know in the comments. But for now, let’s move on.
Now let’s talk about Forks. Forks are a type of derivative that take the source code of another distribution and repackage it, but they make substantial changes to how their distro is presented. While Forks and Clones share the characteristic of having separate infrastructures from the base distro, Forks take a more creative route. Unlike Clones, which aim to closely mimic the base distro, Forks can make all sorts of modifications and alterations. They can introduce innovative features, change the user interface, or even experiment with different philosophies and approaches. In essence, Forks embrace the opportunity to explore new ideas and offer a distinct experience from the original distribution.
Forks are the most technically complex type of derivative because developers might revamp massive and critical components rather than specific areas, even establishing their own infrastructure. Forks can be further classified into two subcategories: Hard Forks and Soft Forks.
A Soft Fork occurs when a derivative forking action once and goes it’s on separate way. is created by taking the base code and developing a new version with a separate infrastructure. However, the derivative periodically incorporates new code updates from the base distro. Ubuntu serves as a good example of a Soft Fork. It originated as a fork of Debian but regularly refreshes its source code by pulling in updates from Debian. This ongoing synchronization makes Ubuntu a Soft Fork. Furthermore, Ubuntu actively contributes back to Debian, forming a symbiotic relationship, as I mentioned earlier.
In contrast, a Hard Fork takes place when the derivative forks from the base distro and proceeds on its own separate trajectory without integrating subsequent changes from the original source.
Thus, the distinction between Soft Forks and Hard Forks lies in the continuous synchronization of code updates with the base distro versus a one-time fork that leads to independent development.
To sum up, understanding the relationships between different Linux distros and their derivatives is crucial for navigating the vast landscape of options. We’ve explored the various types of derivatives, including Remixes, Flavors, Clones, and Forks, each with its own distinct characteristics and purposes.
Remixes offer something new by modifying an existing distro, while Flavors are officially recognized remixes sanctioned by the original distro. Clones closely mimic the base distro, while Forks take a more creative route.
By understanding these concepts, you’ll be better equipped to choose a Linux distro that aligns with your needs and preferences. Whether you’re seeking compatibility, specific features, or a unique user experience, knowing the intricacies of derivatives will empower you in making informed decisions.
What are your thoughts? Did I miss any types of derivatives? Are there any other terms you’d like me to write about? Let mew know in the comments below.
What a great article! I’ve been using linux for a few years now, but I don’t believe I have ever heard these terms defined. (This would have been super helpful when I was just trying to get my feet wet in Linux.)
Another term that always threw me for a loop was the constant reference of GTK or QT. NOW I get the general idea about them being different frameworks… or different paths to get to the end goal of an application running on the desktop. But when I was starting out, I couldn’t figure out why some applications looked so disjointed on some desktops, but on others, they fit right in.
One question rises from reading your article though… Its this matter of a ‘soft fork.’
IF Ubuntu is a soft fork of Debian (which sounds correct in my head) AND Ubuntu features newer packages and advanced hardware support… how then could it infrequently re-base its packages on later iterations of Debian (which is still on older packages).
Q: What am I mis-understanding still about soft-forks?
A good solid article, and I enjoyed the read. Its still taking me years to wrap my head around some of the Linux concepts.
Thanks so much! I’m glad you enjoyed the article! Sorry I didn’t write it years ago for you
Well the answer is because Ubuntu is never really based on any particular version of Debian. Debian has “Stable” (which does not mean stability btw) and it also has the Testing and Sid branches. Ubuntu is based on Testing and Sid so they can have more up to date packages. Ubuntu also does their own testing to make sure they are shipping functional packages. This lets them be based on Debian without having to wait for Debian. Ubuntu also packages some things themselves directly for Ubuntu. One thing that a lot of people don’t know is that Debian is not independent from Ubuntu really since a lot of Debian developers work for Canonical.
Hope this helps.
Join the discussion at forum.tuxdigital.com