The flaws of distro hopping and asking other people about their OS of choice
Published on 2022-04-11. Modified on 2022-11-05.
Distro hopping is a term that refers to the activity of computer users constantly installing and trying out different Linux distributions and/or BSD variants, either on bare metal or in a virtual environment, having a real difficult time choosing what to use. Some people believe that distro hopping is a result of boredom, or because of a lack of satisfaction with current choice, or that it's simply a matter of trying out multiple options, but that is not the case. Rather, it's a kind of psychological problem that arise because of a wrong approach being used in the process of determination.
Table of content
- What is the problem?
- Don't ask other people about their choice of operating system!
- The process of elimination
- Is the project actually active?
- Personal preference
- Distro hopping will never help
What is the problem?
This article is not about simply trying out different options, it's about being stuck because you cannot make up your mind and you just keep trying different things, getting more and more "frustrated". Distro hopping is about people jumping from distribution to distribution without the ability to make a choice. It's like you're trying to make a choice about which car to buy by driving all of them. Not only will it be extremely time consuming, but it also doesn't matter whether you really like the sporty Porsche if what you truly need is a four wheeler for snowy terrain.
Often when I am doing consulting work and I ask a client why they are running the OS they have chosen, surprisingly the answer is that their choice was made based upon popularity in the industry.
Using popularity as a determining factor is a flawed strategy, still it's not so obvious. Just because something is popular, doesn't make it right, history have taught us that lesson many times.
At other times, and this is mainly what is happening on an individual basis, people simply feel overwhelmed because of choice overload, a cognitive impairment in which people have a difficult time making a decision when faced with many options, and I cannot blame them, the choice of Linux distributions is staggering.
I personally know of people who find the process of distro hopping debilitating and even depressing, because it can be almost paralyzing. The more you ask other people about their choice, the more you seem to research, the more difficult it seems to get.
The reason for all of this is because the approach is all wrong.
As with every kind of solution, you need to determine and understand the problem first. You cannot make the right choice if you don't understand the problem. What is the problem you're trying to solve?
If e.g. all you do is browse the Internet and watch the occasional video on YouTube, then almost any Linux distribution will serve you well, as long as the browser gets timely updates, because that has very little to do with the operating system.
For the specific use case (you might have multiple use cases), are you going to use the operating system:
- On a server?
- On a desktop?
- On a laptop?
And what is the specific use case? Gaming, server usage, or workstation usage? How important is security? How important is performance?
Once you have determined the problem, you have limited the amount of choices considerably.
Specific hardware requirements can leave you with very few choices, but I am not dealing with this here because then you have been locked-in by the vendor.
If e.g. you have decided that you don't want to run a closed source operating system on your computer, or you just don't want to run Microsoft Windows because it is much more susceptible to virus infections, or something else, then you move one step down the ladder of choice and eliminate Microsoft Windows all together, which is a really good step.
If on the other hand, you're dealing with a server, then unless you have a very specific requirement, like some hardware that only works on Microsoft Windows, or some tailor made software that only runs on Microsoft Windows, then you can also easily eliminate Microsoft Windows from the list of choices and move on to something open and more secure.
My point is that you need to make a list of requirements, with the most important listed first, in order to eliminate as many choices as possible.
Don't ask other people about their choice of operating system!
I am NOT saying that you shouldn't ask experienced people for advice. Drawing on the experience of other people is very beneficial, but generally asking other people about their choice of operating system without defining a problem first, makes little sense. You have a specific problem to solve, so you need a specific solution that fits you well.
Someone sitting around on Reddit who has been running Linux for a couple of years, with little to no real experience, considers Linux distro X "faster" or more "stable" than disto Y. He considers - what he experiences as "speed" or "stability" - the startup time of applications or whether or not some application has crashed. Reddit is unfortunatly filled with misinformation and misunderstanding.
I cannot count the amount of times I have seen someone determine the operating system is "unstable" because of some problem with e.g. the window manager, even though the window manager has absolutely nothing to do with the operating system.
The process of elimination
Once you have determined the problem and you have decided upon the main type of operating system, you need to enter the process of elimination based upon other factors - if multiple choices still exist.
Options need to be listed in the order of importance to you. Options like e.g.:
- Performance (can be impacted by anything from driver quality to security mitigation).
- System administration, e.g. do you consider it torture to manually configure things with a text editor even though it provides you with a greater amount of control?
- The ability to easily compile anything from the kernel to third party software from source, if e.g. you need to manually optimize compile time options.
- Binary package manager's ability to automatically handle dependencies and/or possible conflicts.
- Availability of third party software.
- Timely updates.
- Community based vs company based. Size of the community and user base. Fewer people decrease the chances of finding bugs or help.
All of these options need to be determined before you can make a qualified decision.
High levels of security mitigations and speed are often contradictory. The more secure the system is the slower it often becomes. This is because security requires extra "checking" in code during runtime, and it requires higher levels of randomization, which again requires more computing power, etc.
We all want our systems to be secure, but nothing is truly secure. You need to determine what kind of security problems you might be facing? Are you running a server with a service facing the public Internet? Is the main risk you browsing the Internet with a web browser? Are you going to download and read PDF files? Generally, Microsoft Windows and MacOS are much more exploitable than Linux. And most Linux distributions are more exploitable than FreeBSD and OpenBSD.
Anyone can make a Linux distribution, especially if it is based upon one of the major independent distributions. Many people do so just as a hobby, for fun, etc. As such I have always, in all my years as a system administration, advised against non-independent and small Linux distributions for anything other than "having fun".
Make a list of all your requirements and determine the important factors. By doing so, you will eliminate most of the available choices, leaving you with about a handful of valid choices which makes the choice a lot easier.
Is the project actually active?
All the major BSD variants and the major independent Linux distributions are actively developed. Still, there is a big difference between the projects. OpenBSD is perhaps one of the smaller projects, compared to both FreeBSD and the major Linux distributions, yet both the developers and the community are extremely active.
Locate the source code repository of your candidates and their bug tracker and then compare the level of activity and the number of participants. Join the main IRC channel (not all projects has an official IRC channel, but then often the community usually has one), and compare the number of people listed, the level of activity, the helpfulness of the community and the usefulness of the activities. Look through the mailing list archives. All of this is an important step in determining how good the community is.
Locate the binary package repository (if the project provides binary packages) and compare the version of the software you need to use to other projects. Is the project running with outdated packages? Do these packages still get security and bug fixes? Do they have many unfixed issues? If so, what if upstream abandons such software? Do the project still promise LTS (long term support) and leave the package in the repository even though nobody will be able to fix anything?.
The more clearly you understand your problem, the more clearly you can determine the proper solution.