ZWOS Episode 2 : linux distro?

Last time it was about how everything in GNU/Linux is a file. (https://forum.level1techs.com/t/zwos-episode-1-what-you-always-have-to-remember-when-using-linux/110305)

This time we'll talk about the GNU/Linux families and why users choose different distros. Why? Because I see the weekly "what distro to use" thread, which only leads to an unseen spam of people who haven't even read the OP posting their distro of choice and why everyone should use it and why all other distros are crap. This is both amusing and frustrating, because of course, new users can't actually do anything with that, it's not helpful.

For that reason, this Sunday a quick history, and next Sunday a quick overview of the reasons for preferring this or that distro, first the reasons why not to chose this or that distro, then the good reasons.

First of all, I use all kinds of different distros myself. Different distros do not have the same level of quality all the time, sometimes a distro that I'm using doesn't quite do what I need, and I change to another, temporarily or just for a specific application. I also use BSD on dedicated machines, this is not part of this ZWOS. So I don't really have a specific favourite distro myself, for me it's about getting things done as quickly and as efficiently possible.

Second of all, a brief definition of my use of the word "linux", so that there may be no misunderstanding about that. When I write "Linux" with capital L, I usually refer to the actual Linux kernel. When I write "linux" with a small l, I usually refer to the whole of GNU/Linux distributions or a part or single one of those. Why? Because GNU/Linux is too long for my taste.

In the old days of linux, there was quite a bit difference between linux distros. I guess everybody has seen timelines like this one:
https://camo.githubusercontent.com/67216c3038e78263082bc68608dce708af728ab7/687474703a2f2f66757475726973742e73652f676c64742f77702d636f6e74656e742f75706c6f6164732f30362e30392f6c647436392e706e67

Nowadays, the difference between distros is much smaller. There used to be a big difference in performance between binary and source systems, between lean and user-friendly systems... but that difference has become very small now.

Nowadays, there are about exactly the same number of major distros as 15 years ago, but the number of families has decreased a bit, even though the total number of distros has increased enormously. So the big ones have stayed the same, there are less original upstream distro projects, and there are more downstream branches and forks.

The main division in distros used to be between source based distros and binary distros. What is the difference?
A source based distro only provides raw source code from the individual software development projects, and the distro uses a software manager that handles local compiling of that source code into usable binaries for the system. Compiling takes quite a long time. For instance, compiling Firefox 50 on an average machine would take about 40 minutes. That's only Firefox 50, no dependencies or other software updates. In the old days, it was worth the wait because the code was much smaller than it is now, and because the machine would perform much better afterwards because the software was 100 % optimized for that particular machine, being compiled in that machine's native environment. In the old days, Gentoo was much faster than anything else.

Binary distros prepackage the software in binary form already so that compiling is not necessary. That means that software updates are much faster, but that the software is not 100% optimized for every single machine.

Distros use a software package format that is specific to the distro. The main families of binary distros are therefore distinguished from each other by the use of their packaging format. The main formats are RPM (RedHat Package Management, used by the so-called RPM distros, RHEL/Fedora/CentOS, SLES/OpenSuSE, Mageia/ROSA/Mandriva), DEB (Debian package format, used by the Debian-based distros, Debian, Ubuntu, Mint, etc...), pacman (the Arch package management system, used by Arch based distros, Arch Linux, Manjaro, etc...), Portage/Entropy (source and binary based package managers for the Gentoo/Funtoo family of distros, Gentoo, Funtoo, Sabayon, etc...), even Slackware technically has a package manager called pkgtool, even though it doesn't have much features in comparison to other package managers (there are also other package managers for Slackware like Slagz, or distro-specific solutions for different distros based on Slackware). The distro families listed here are the major distros. There are not that many major distros, basically this is the list:

  1. RedHat Enterprise Linux/Fedora/CentOS
  2. SuSE Linux Enterprise/OpenSuSE
  3. Mageia/ROSA/Mandriva (which represent the Mandrake heritage)
  4. Debian
  5. Arch Linux
  6. Gentoo/Funtoo
  7. Slackware

And that's it for the main distros. With the exception of some smaller independent distros (for a very promising one, take a look at SolusOS!), all other distros are in some way or another downstream from these main distros.

In the old days, these main families would operate quite independently. That is not the case any more, because modern open source development has gotten amazingly efficient through the years, and many projects are shared or contributed to by several of the main distros.

That also evens out many performance differences that used to exist between the distros. Arch and Gentoo used to be much faster than anything else, but that is not the case any more. Pretty much any distro can now be configured so that it is as fast as pretty much any other distro and vice versa.

Slackware is probably still the fastest distro, but therefore it is also more limited than others. Slackware is a very popular upstream for dev communities that make distros for older or very small computers, e.g. Vector Linux, Puppy Linux, etc...

Slackware is the oldest distro, together with the defunct distro Yggdrasil. Debian is the second oldest distro. SuSE split off of Slackware about the same time as Debian came into existence. RedHat was created shortly after. Slackware has not grown as much as the other distros, but SuSE, which originally was based on Slackware, grew out to be the most constantly successful distro in the world. SuSE/OpenSuSE is the only distro that has always grown steadily throughout its entire existence, and it's the leading enterprise linux platform for years now. SuSE is also one of the very few distros that offer a RTOS version of their distro, complete with special RTOS kernel and all. SuSE is the most extensive and comprehensive linux distro as a project. SuSE also has build services for packages of other distros, SuSE supports all compatible hardware platforms, etc... it is without any doubt the largest linux software project from a development point of view. SuSE works very closely together with RedHat, many developers/maintainers of the community based upstreams of both commercial solutions share the same people.

Debian is probably the largest linux distro development community in terms of number of contributors.

Debian, Arch, Gentoo/Funtoo and Slackware are not directly linked to any for-profit operation. Some derivatives are 100% commercial though, e.g. Ubuntu is a 100 % commercial Debian-based derivative, ChromeOS is a 100% commercial Gentoo-based derivative, etc...

A distro has nothing to do with the looks of a distro. The graphical shell of any linux distro is - cf, last weeks ZWOS: everything is just a file - but an application that can be installed on any distro.

A distro has also nothing to do with the Linux kernel, except that every distro provides it's own cocktail of the Linux kernel, like every linux user does.

A distro is also not a preselection/preconfiguration like commercial software consoles... every user still maintains his7her own system and is the only instance to decide what is installed and what is not installed, and how everything is configured.

A linux distro is but a repository system and software maintenance service basically, because you need a distro to run applications, applications that are not developed by the developers of the distro.

Therefore, the main criterion in the selection of a distro, is the packaging system or software install system. With that comes the question of the release model of the distro. Those are pretty much the ONLY practical non-political/non-philosophical reasons to prefer this or that distro nowadays.

We'll expand on that further in the next ZWOS episode.

12 Likes

Was looking forward to this even though I don't use linux anymore (force of circumstance). Very informative, condensed and extremely useful if any of my friends ever ask about the basics, if they decide to make the switch.

Could you maybe post links to previous episodes on the top of new ones?

Good idea, will do!

Nice write up, when looking at the Linux Family Tree you realize that Chaos theory really works! But this also works against it and newcomers can get overwhelmed by the complexity & history.