Linux distributions: All the talent and hard work that goes into building a good one
I regularly read the Linux Mint Blog, not only because it is useful to keep up with what is happening with the Linux Mint distribution but also because it occasionally gives very interesting insights into the development and maintenance of a Linux distribution in general, and the Linux Mint distribution(s) in particular.
To be honest, I was disappointed some years ago when Clem (Clement Lefebvre) discontinued his Segfault blog, because it always contained good technical information and interesting insights.
Anyway, two recent posts to the Mint Blog are very good examples of the kind of thing I am talking about. The first, titled Update Your Computer!, is a discussion of the importance of installing updates, but in my opinion it is one of the best posts I have read in quite some time, because it is not just the usual “security updates are important/easy/safe” sermon, it also includes examples and statistics taken from the Mint distribution itself, and it examines some of the issues around running end-of-life versions that generally don’t get any updates at all.
SEE: Hiring Kit: Python developer (TechRepublic Premium)
The Linux Mint Update utility is one of the best available in my opinion, and it is obvious that the Mint developers have put a lot of effort into it over many years, continuously improving and extending it. It not only does the basic job of downloading and installing updates, it puts a lot of effort into making the update process clear and easier to understand and manage, and monitoring various aspects of the system to try to help with effective and secure administration. I am old and stubborn, and I still tend to use CLI utilities for updates on most systems (apt on Debian and derivatives, dnf on Fedora, pacman on Arch and derivatives), but I realized quite some time ago that Mint Update did a better job overall than I could do manually.
I strongly recommend reading this blog post, and not only for those who actually run or manage Linux Mint systems. There is a lot of food for thought – and reasons for action – in it.
The other Mint Blog post was the regular Monthly News – February 2021. It discusses some of the upcoming improvements in the Mint Update Manager, again including not only the “what” but also the “why” behind them. It also goes into more detail about some of the most recent bug fixes, with a lot more information about the cause and effect of a few of them. For example, I mentioned the UsrMerge update in my recent post about Linux Mint 20.1; this blog post explains a rather nasty bug, which is caused by that relating to reproducible builds.
Reading those blog posts, and thinking about the issues that they bring up and the actions they have produced, got me thinking about Linux distributions in general. Mint is based on Ubuntu (I know, don’t worry about LMDE for this discussion), which in turn is itself based on Debian GNU/Linux.
That means a lot of the low-level stuff, such as the package base, the repositories, and most of the integration and compilation issues, are handled by those “upstream” distributions. The Mint developers concentrate on integration of other packages from other sources that are not included in the upstream base distribution, such as non-FOSS or other third-party packages, and the Mint development team actually produces significant new portions of the distribution, such as the Cinnamon desktop, the Mint Update Manager, and XApps to name just a few. That requires a lot of human resources – just take a look at the Linux Mint Teams page, where it lists five teams responsible for various aspects of the distribution.
While other distributions, which are derived from larger upstream distributions, such as the numerous Ubuntu derivatives, or Arch Linux derivatives, or even others derived directly from Debian, generally do a lot less original development, they are still able to concentrate their efforts on things like desktop integration, artwork and third-party package integration, while building on the solid and (hopefully) stable foundation of their upstream distribution.
They take on the responsibility of creating the entire distribution from scratch – compiling, packaging, integrating, creating and maintaining repositories and much more. There are decisions to be made about package format, software update mechanisms, desktop(s) to be supported, and on and on. That in itself requires a lot of work, and a lot of technical expertise and experience.
So what does all of this mean to someone who is trying to decide on a Linux distribution to use, or at least to try out?
Well, at one end of the scale the large, established distributions such as Debian, Fedora, openSUSE and their major derivatives, such as Linux Mint, offer stability, predictability and very extensive testing before release (note that I omitted Ubuntu here, because in my opinion they lose out on predictability due to their very serious ‘not invented here’ syndrome, and their tendency over the years to unnecessarily reinvent things and go wandering off on a long tangent before suddenly deciding to scrap it and jump back onto the mainstream path after all). End-user support from these distributions is likely to be good, but rather slow-moving from the user perspective.
At the other end of the scale, the independent distributions such as Solus, KaOS and PCLinuxOS are generally more focused on their original concept, which might be a specific desktop/development environment, or a specific target audience or application. If that focus matches your interest, then you are likely to feel much closer to the developers, rather than feeling like you are “just one of the potentially large number of users”. Because of the smaller size of the development/maintenance team, independent distributions are likely to be more “agile”, getting updates and new developments integrated and released faster, and end-user support is generally more responsive and often more personal.
In closing, I would say that I admire a lot of the people at both ends of this scale. It takes a great deal of talent, knowledge, dedication and plain old hard work to produce a good Linux distribution.
Clem, in particular, has been one of my heroes for a very long time (since about release 2.something), and Adam W. since the Mandriva days. Those who have established and maintained independent distributions for years are deserving of just as much credit and appreciation, but they often don’t get it.
Kudos to them.