How to choose a distro
Disclaimer: The term “distro” means a GNU/Linux system in the narrower sense. Despite that, *BSD systems are also meant.
There are hundreds of GNU/Linux distros to choose from, plus a growing number of *BSD variants. Many of them are for desktop use, many for general use, some are for more specialized use cases.
Many people who switch from Windows are overwhelmed with the amount of different Linux distros. Over the years I have developed certain criteria for choosing a distro, according to it's use case. These are working for me, they may not work for other people, or for you. However, maybe some people find these criteria useful:
Of course, everyone wants a stable system. But what does this mean? To me, it doesn't mean that it (almost) never fails – but this can be a result of stability.
Stability means tha there is a stable base (at least) which I can rely on. What I don't want is an ever-changing system. Progress is good and part of life, but when I spent more time to adapt to new circumstances than getting work done, or changes prevent me more than necessary from getting work done, then something is wrong.
There is an old saying in IT: “Never change a running system”. This saying is somewhat obsolete by now. However, another variant of that saying is still true: “Never run a changing system”.
That means to me:
Don't run a system which introduces new bleeding-edge technologies all the time. Prefer careful “evolution” over a “revolution”. Fedora has a reputation of being a testbed for new tech stuff, which will end up in RHEL eventually. And Ubuntu, at least the non-LTS versions, are a playground for Canonical. Which is fine, but this does make those distros not my first choice as a daily driver.
This doesn't speak against rolling release distros in general. But if you go for rolling release, make sure, that the community has a sane release policy. Arch, Manjaro and relatives have – despite being rolling release distros – a testing branch, where new packages are tested before they got released to all users.
Works out-of-the-Box and not getting in your way
To me an operating system is a tool I want to work with. With the tool, not on the tool. That means, that I don't want to tinker a lot, just to get a working console. Tinkering can be fun and is nice – if you want to learn how the system works (or why it isn't working), but that is a special use case.
But thie doesn't mean that I don't want to configure anything and all should be setup automatically. On the contrary, I do want to implement my favorite settings, such as locale, shell prompt, my WiFi network and so on. But the system should allow me to do that in a sane way, where I would expect it to be configured. It shouldn't have a special configuration tool, which interferes with my hand-made config, or change the method how the settings are configured (see “Stability”). But the operating system should also have sane defaults, so that I can start right away.
A negative example are the infamous systemd a start job is running or a stop job is runnning messages, with a running countdown and you have to wait half an eternity, until eventually time is up. Happens to me all the time when I use a Linux distro with systemd. It is configurable how long you have to wait. But I haven't seen a distro yet, where this time frame is set to a sane value.
Security is important. When your machine is connected to the internet, security is the most important aspect you should consider.
The most important thing an operating system can do in this regard is, to deliver security updates in a timely manner. Operating systems, which are serious about this, even publish security advisories about their updates. Distros which do this are, for example, Debian, Ubuntu, RedHat/CentOS, SUSE, Slackware, Arch, Manjaro and all major *BSD variants.
Don't use distros which have no clear and timely update policy and leave you with a vulnerable web browser. In contrast to the other points here, this is not an opinion which can be discussed. Don't use them, or you are putting yourself in great risk.
The majority of the more serious security experts (I don't talk about marketing people, who give advice to buy NextGen2 firewall boxes or other snakeoil) agree, that using only free software (open source software, FLOSS) is an important step in achieving security and privacy.
Proprietary software can have hidden functions the user is not aware of. For example, it can have backdors, so that third parties can take control of the computer. Or it can spy on you.
Not every distro has a clear policy to include only free software. Some of them do include non-free software, and some even advertise to use it.
Very strict about the exclusive inclusion of free software are the FSF-endorsed free distros. But not all of them offer timely security updates.
Debian/Devuan, Fedora and Mageia Core have also a clear policy about including free software only. In regards to the BSD-systems, only OpenBSD follows a policy to include free software exclusively.
When choosing a distro, one should consider several aspects.
- Most important is security, therefore the distro should provide timely security updates
- In order for your data to be kept safe and private, the distro should have a policy to include free software (open source) only
- The distro should have a sane release policy. It should stick to a stable base system and shouldn't introduce new bleeding-edge stuff in a revolutionary way
- It should work out-of-the-box with sane defaults. Configuration should be possible without the system interfering or changing the way of configuration