Choosing a Linux Distribution
Introduction
Recently my laptop died, and after 12 years of using Ubuntu/Kubuntu, I decided to consider other Linux distributions. What follows is a long, meandering post sharing recent trends in the Linux desktop, their trade-offs, as well as some recommendations. It will be meandering because I survey several distributions, and I have two disparate audiences in mind:
- Data scientists who are new to Linux
- People like me who have used Ubuntu-based distributions for awhile and are looking for a change
Some of this post will be too much information for those in (1) and some will be too basic for those who fall into (2), so I suppose no one will really enjoy the whole thing. And if you don’t fall into either category, you might consider finding a better use of your time, like standing in line at the DMV.
A caveat is that while I’ve been daily driving Linux for over twelve years, no one will confuse me for a kernel developer or professional sysadmin. Heck, I don’t promise everything I write here is even true. Some of it will be just my impressions, including possible misconceptions, based on limited time to deep dive. Plus, things can change fast. So you’ll want to check any claims that are important to your own decision.
Motivation to use Linux
One piece of advice I give to early career data scientists is to use Linux on their personal computers, if they can. While I wouldn’t recommend it to someone still ramping up on fundamental skills for fear that they would be distracted by wrestling with a new operating system, I think it helps develop technical breadth for the T-shaped skills a data scientist is expected to have.
Specifically, the benefits of using Linux for data scientists include:
- Getting comfortable at the Linux command line
- Having a good development environment
- Gain a better understanding of Linux, which is almost certainly your production environment
Now, if you just use your personal laptop to check email and watch youtube, using Linux may not build many skills. But mucking around on the command line, tinkering with my system, and troubleshooting issues on my personal computers over the years has helped me to work more independently as a data scientist, communicate better with engineers, and even take on some work that might normally require engineers.
For instance, I recently resolved a GPU driver/software package mismatch in AWS with only cryptic error messages to guide me, whereas many in data science may have kicked it back to the infra team and delayed their progress. In another example, I was at a company where the IT team had a Windows background, but had some on-prem Linux servers before we started moving to the cloud. Before I hired a software engineering team that stood up our production JupyterLab environment in AWS (before Sagemaker existed), I personally set up a Jupyter environment for my team on an on-prem Linux server to hold us over until we had the longer term solution.
I’m not suggesting using a Linux desktop is the only way to learn such skills, but I think a regular user will internalize Linux concepts better than someone who tries to learn them as needed. Besides, I genuinely enjoy using the Linux desktop more than the alternatives. While the setup and maintenance can take longer, I have more control of the experience and am convinced it enables me to get more done.
My history with Linux
I first installed Red Hat Linux, the precursor to Fedora, as a dual boot with Windows on a custom PC build. At the time, Linux was not my daily driver, but I took away that it was a good development environment and there was a surprising amount of good free software available.
In 2012, I installed Ubuntu as a dual boot option on a new Windows laptop and immediately started using it as my daily driver, until I switched to Kubuntu in 2017. Recently, my 4+ year old laptop started breaking down in March of 2024, and I got a new desktop and later also a laptop to replace it. For some reason, the Kubuntu installer failed for me (possibly user error), and I went down the rabbit hole of exploring Linux options, and hence we have this post.
But first let’s discuss some popular alternatives.
Why not Windows?
First, is Windows’ history of sporadically terrible UIs. Recently, they've been found to have copious amounts of telemetry. Just this year, they almost pushed frequent, unencrypted, automated screenshots of users’ desktops to them, which would be on by default. They have ads in the Start menu. And MSN ads. And the Edge browser desperately begs you to use it.
In short, Windows appears to have become an ineffective advertising platform cleverly disguised as a bloated operating system.
But what about the WSL? That can be useful for involuntary Windows users, but I've heard it has a low performance ceiling (relative to Linux on bare metal) and requires extra effort to pass things (like Jupyter notebooks) through from WSL to Windows.
Gaming may be a reason for some to stay on Windows. Linux gaming performance is now much improved and roughly on par with (and in many cases outperforming) Windows according to recent benchmarks, but Windows still offers more choice, especially for games that require anti-cheat on Windows.
Why not Mac?
I have been using a Mac for work for the past three years. It’s OK, but I don’t think I’d want it for personal use. For one thing, there’s no way to leverage CUDA locally on a Mac. Granted, you can use colab for free, but I don’t like the colab workflow (no ssh anymore, and limited control over dependencies), and they give you slow GPUs. I recently ran an example deep learning model on Colab Pro and locally on an RTX 4070, and my training time was nearly 4X faster locally (71 vs 18 minutes). Plus there are no timeouts or limits on usage locally. I don't mean to criticize Colab, which has a very generous free tier, and not everyone will want to shell out for a new Nvidia card (which will depreciate in relative performance over time), but I think there are some real advantages to experimenting locally.
Macs are based on BSD, so it’s also a Unix, but I find them just different enough from Linux to be confusing. I recently saw that MacOS may not be particularly secure. Plus Docker Desktop needs to run a Linux VM just to start a container.
The defaults are clearly aimed at non-technical users (yes, I want to change the extension of that text file…). The primary purpose of the multitouch gestures seems to be to accidentally “show desktop” several times per week, and it requires a third party app to have reasonable keyboard-driven task switching. The defaults can be changed, but they give you a sense of who this nanny operating system is primarily targeting.
The advantage of a Mac is that the vertical integration means it just works, but it also has a large price markup relative to its performance and throws you into a walled garden (although it may be weakening). Enough developers prefer it that I suppose it must provide a good enough dev environment, but I’ve never been tempted to get one for myself.
Bork insurance and prevention
Historically, Linux users were famous for rendering their own systems unusable through tinkering. I’ve personally had to rescue my laptops from the unbootable brink a few times, and once was forced to do a fresh install because of self-inflicted problems. However, some innovations have been gaining traction that help mitigate that risk.
The first are btrfs snapshots that are bootable from grub. This seems to be easiest to set up with snapper, but can also be done with timeshift. While btrfs has some issues, my impression is that it works well for a typical desktop's root filesystem.
Another innovation is atomic/immutable distributions. These are read-only root filesystems that prevent the users from making destablizing changes and provide some security benefits. Then system updates are applied, and if the new system doesn’t work, the user can rollback to the old one. This is how ChromeOS works, but there are several Linux distros that use this now, like the Universal Blue / Bazzite/Bluefin spins of Fedora or NixOS. I’ve heard that these distros require more reboots than traditional systems to use newly installed software, although less so with NixOS.
Flatpaks, Snaps, and AppImages are ways to package software that have gained traction in recent years. By bundling codecs and dependencies with the apps, they help users avoid dependency conflicts between applications known as dependency hell. I recently tried some Flatpak browsers, and I experienced graphics glitches, although perhaps that was specific to my system (using Nvidia with X11). Snaps, created by Canonical (the maker of Ubuntu), have stirred controversy for a variety of reasons. Snaps require systemd, which is not present in all Linux distributions, and out-of-tree kernel patches need to run them securely. They also used to launch painfully slow, although that's improving (and all these formats launch slowly compared to native applications). Flatpaks and Snaps are containerized, while AppImages are not. Additionally, Flatpaks and Snaps are typically tracked by a package manager to stay up-to-date, whereas AppImages are installed as one-off downloads that the user must update themselves.
Finally, two other popular aids are Distrobox, which lets you run a tightly integrated Linux container from various distributions on a host, and the cross-platform nix package manager, which helps to build and manage isolated dependencies.
In praise of unofficial spins
At a high level, there are three types of Linux distributions:
- Independent: These are not derived from other distributions. There are a relatively small number of them, such as Debian, Arch, Fedora, openSUSE, Gentoo, and Void.
- Derivatives: These extend a parent distro and add to or modify it. For instance, Ubuntu is a derivative of Debian and Linux Mint is a derivative of Ubuntu.
- Spins (or flavors): These are variants of a distribution. For instance, Kubuntu is an official flavor of Ubuntu that uses KDE Plasma as its desktop environment. Fedora KDE is an official spin of Fedora (but not the “flagship” distribution).
GeckoLinux is an unofficial spin of Tumbleweed that provides an easy installation and configuration of openSUSE Tumbleweed. Once it's done, you are running Tumbleweed with no dependencies left on GeckoLinux. But the production of GeckoLinux itself is unaffiliated with openSUSE, which helps make it easier to provide proprietary drivers and codecs out of the box (it also makes some strange choices, like setting up the Skype repo, but that's easy to undo). SpiralLinux is another unofficial spin from the maintainer of GeckoLinux that provides an easy installation for Debian plus drivers and btrfs and snapper, like openSUSE, as well as a backported testing kernel, for better support on recent hardware. Unofficial spins are great because they can take care of the painpoints of some distributions while removing the risk associated with using a smaller project.
Trade-offs abound
One of the best aspects of the Linux desktop is the diversity of options. While the sheer number can be overwhelming, each distro comes with trade-offs, and knowing what you want can help narrow it down quite a bit. So I’ll cover some of the common trade-offs I’ve noticed. Some of the distros mentioned will have various options available, so if I attach a particular trait to a distro, I’m referring to what I view as the most common out-of-the-box configuration.
Minimal vs batteries included vs fully loaded
Minimal distributions, such as Arch and Void, treat the OS like Lego blocks for the user to build with. As a result, these distros tend to attract more experienced users, who like to customize and understand all the components of their system. There’s also a security benefit of fewer installed packages in that they provide fewer opportunities for vulnerabilities or malicious code to enter your system (assuming the user also installs some security related packages that do not come by default). While these distros target expert users, beginners who are willing to invest time and learn can jump in. Their communities tend to do less handholding, however.
Because the users choose the components of their system, a job normally done by maintainers of “batteries included” distros, they need to stay on top of the evolving Linux ecosystem. Often these distro installers come with fewer desktop environment options, and nothing distinguishes the installer for a headless server vs a desktop.
Alternatively, there are what might be called “batteries included” and “fully loaded” distros. Batteries included distro maintainers make decisions about your operating system so you don’t have to worry about keeping up with all the details (like transitions from PulseAudio to Pipewire). The installation comes with a choice of desktop environments so your first boot doesn’t just land you in a terminal. Think of openSUSE or Debian in this category (you can install as headless, but they give options for installing desktop environments during installation).
“Fully loaded” distros are “batteries included” plus a suite of applications, either for a general use case, like Linux Mint, or a specific one, like Nobara for gaming. The line between “batteries included” and “fully loaded” is a gray one (especially since I just made up those definitions), and some installers come with options for more or less applications. It can be helpful for new users though, so they don’t have to research Linux calculator options, for instance. Experienced users may call these “bloated” since they may come with software they won’t use.
Rolling vs point release
Distros can either follow a point release model with periodic major updates or offer rolling updates. Rolling releases gradually update software over time, meaning users face smaller risks more frequently with each update. Point release distros (also called 'fixed release') prioritize stability within each major version, but when it's time to upgrade, users must make larger jumps, which can carry more risk—either during the upgrade process or if the new version turns out to be buggy. For instance, the rule of thumb I’ve seen with Fedora is to wait a month after a new major release before upgrading. And Ubuntu is still having issues with upgrades to 24.04, about 5 months after its initial release. You may also see the term “semi-rolling release,” which refers to distros that keep some components stable while providing rolling updates to others, but I’ll ignore that distinction here. Arch, Gentoo, Tumbleweed, and Void are examples of rolling releases, while Debian, Ubuntu, and Fedora follow point releases.
Up-to-date vs stable
Distros can provide software that is more or less up-to-date. Keeping up with the latest packages gives the user access to newer features and improvements, along with more opportunities for customization and tinkering. However, these users may encounter more bugs and some security risks associated with newer, less-tested code. Arch and Gentoo are examples of distros that integrate upstream updates quickly into their official repos.
"Stable" distros emphasize testing and less frequent updates. If attached to point releases, then they will typically limit updates to security patches and bug fixes for a given release. While newer packages are often found in rolling releases, Void is an example of a rolling release that delays and curates updates to prioritize a more reliable and stable user experience.
Debian is the poster child for stable distros, and its derivatives, including Ubuntu and its own derivatives, follow suit. Another benefit is doing blind updates with reasonable confidence. That is, while rolling release distros that stay on the bleeding edge require the user to be aware of important updates about their distros, someone using a point release of Debian or Ubuntu can just trigger updates, usually without worrying about the consequences if they've stuck to the official repos.
The downside is using outdated software. It’s not uncommon for Debian users to be two years behind the current version of software packages, and this can sometimes cause problems for newer hardware. For instance, in late 2019, I installed Kubuntu on a new laptop and had to tether to my cell phone in order to download the driver needed for the wifi card and install it myself. And software developers don’t always love fixing new bugs found on old releases.
Debian and the LTS versions of Ubuntu (and its flavors) are only released every two years, and the software used in Debian is only included after thorough testing, so isn’t even new upon release. While I ran LTS versions of Ubuntu/Kubuntu, I was sometimes unable to install newer software I wanted because I couldn't match the required dependencies.
Software availability
Debian, Arch, Fedora, and NixOS seem to have the largest software selection in their official repos, although I’ve been pleasantly surprised to see how much Void and openSUSE have as well (although some notable exceptions for Void). Unofficial repos, like the AUR, COPR, or OBS can provide supplementary packages as well. Smaller selections may lead the user to install more from source code and manage those updates themselves.
Beginner friendly vs customizable
Some distros have a reputation for being beginner-friendly. Attributes of these include:
- Ease of installation: GUI installer are typically more friendly than command line or chroot installationn, although even a GUI installer can present an overwhelming number of choices to new users. Arch used to be famously challenging for new users to install, although they now have an easier archinstall option
- Less reliance on the command line: Some offer GUI package management or configuration alternatives to command line interfaces or config file editing.
- Ease of printer setup: This was generally painful when I first started, but now is often done automatically. However, some distros make it unnecessarily hard still, like openSUSE.
- How easy it is to install proprietary drivers and codecs: Distros often don’t include proprietary drivers out of the box for legal or ideological reasons.
- The size and helpfulness of their communities: Some communities like Linux Mint expect and welcome new users. Others are more geared toward experts who may encourage self-help.
Note there may be other trade-offs that could matter to some, like distros being steered by companies vs communities or philosophical differences in how “free” the software needs to be.
Efficient frontiers
A useful idea when it comes to considering trade-offs is the efficient frontier. This refers to the set of options that offer the best possible trade-offs for the qualities you value most. In finance, for example, the efficient frontier is composed of the investments that provide the highest return for each given level of risk. While this is universally favorable in finance, operating systems present a more subjective case: different users have different preferences. For instance, an experienced user might find a beginner-friendly distribution too restrictive or bloated. Ultimately, each user's unique preferences will shape their own version of the efficient frontier.
An example of a distro on the efficient frontier for many beginners was Ubuntu, which leveraged the stability of Debian to provide many beginner-friendly features. Here I will try to identify some distributions which I believe fall on my efficient frontier.
My use cases and preferences
Primary use cases
- Personal data science projects, sometimes requiring CUDA
- Software development
- Web browsing
- Reading pdfs or ebooks
- Youtube / streaming TV
- Occasional multimedia editing
Desktop environments and window manager preferences
The UI is an important part of any PC operating system experience. We’ll take a quick tour of the main Linux desktop environments, and I’ll share my preferences.
KDE Plasma vs Gnome
These are the two heavyweights of the Linux desktop environments (DEs). I personally prefer Plasma, which has a nice out-of-box experience, but is also highly customizable, and provides Windows-like keyboard shortcuts, but many distros use Gnome as their flagship DE.
There are also some lighter weight DEs (LXQT and Xfce). They’re particularly good for resource-constrained VMs and older hardware, but some people prefer them even more generally. The Cinnamon desktop is used by Linux Mint and preferred by those who think computing peaked with Windows 7.
Hyprland vs Sway
Aside from fully fledged desktop environments are window managers (or compositors under Wayland). They tend to be more bare bones and require more configuration from the user. They can be lighter weight, unless the user loads them up with features.
I recently tried out these compositors. I first tried Sway, because it had a reputation for being more stable and lighter weight, but I ran into some bugs and didn't like the default window placements. So I tried out Hyprland and really like it. The main benefit of Hyprland is that it dynamically places your newly open windows in sensible, unoverlapping places. It also looks very nice and has animations, which I first thought to be superfluous, but I think the visual cues enhance usability.
Hyprland works particularly well with bleeding edge (or close to it) distros like Arch, NixOS, and openSUSE Tumbleweed, although with a bit more work, it seems like people are able to get it to run on other distros, even if they can’t use every new plugin. It mostly works very well, although I occasionally run into rough edges with the clipboard manager or have to search for something that KDE provides easy access to.
I would not recommend new users jump straight into window managers or compositors. For those who want to try it out, I would recommend they first configure their own installations before using anyone else’s dotfiles. Some nicely pre-configured installations are available from JKoolit (several distros) and MyLinuxForWork (for Arch based distros).
Coming soon: Cosmic
A new DE called Cosmic looks to have what I would call “smart configuration,” where a smaller number of choices lead to a set of changes that go well together. It also provides a dynamic tiling window manager within a full desktop environment. It’s also developed in Rust, which should reduce an entire class of bugs and security vulnerabilities. But it’s still in alpha, so I doubt whether I would consider this seriously for another year or two.
Summary of preferences
In short, for this recent distro search, I preferred:
- Good KDE Plasma support
- And (after I tried it) good hyprland support
- Rolling releases to avoid my inertia with point release upgrades
- Relatively easy installation, although I don’t mind some extra work or decisions
- Batteries included > minimal > fully loaded
- Large software selection, ideally in official repos
- Blind updates that are relatively reliable and trivial to recover from
- Making use of secure boot without too much effort or maintenance
- Good Nvidia compatibility, particularly for CUDA
- this rules out Musl in favor of glibc, which is required for CUDA
The stopgap
Tuxedo OS
When I first got my new desktop in March, I installed Tuxedo OS to buy time while I researched further. It’s like Kubuntu without Canonical shoving Snaps down your throat. The OS is based on the Ubuntu LTS versions with KDE Plasma, via KDE Neon, by a company that sells hardware for Linux. They replaced Snaps with Flatpaks and optimized it for their own hardware, although I’ve also seen benchmarks that suggest it outperforms vanilla Ubuntu on other hardware as well. I found it to be very user friendly, exemplified by pushing instructions in a desktop notification for how to upgrade to Plasma 6. Nvidia drivers were installed without extra effort, although Nvidia did not work well on wayland, due to driver issues (not Tuxedo’s fault beyond being slow to adopt drivers that worked well).
I had audio issues though, which were probably due to older kernel and new hardware that differs from Tuxedo’s. The audio would crackle for about a minute any time I adjusted the volume, a problem that did not persist on the next OS I installed with a newer kernel. A big downside of Tuxedo OS is that it is far downstream from Debian and even Ubuntu. The Ubuntu LTS version comes out once every two years, plus Tuxedo needs to wait for KDE Neon to come out before it rebases to that. So the Ubuntu base it’s using can be nearly two and a half years old before it rebases. But, if you are using older hardware (or Tuxedo’s newer hardware) and want KDE Plasma, it seems like a reasonable choice for a beginner.
My efficient frontier
openSUSE Tumbleweed via GeckoLinux
When the new laptop arrived in May, I installed openSUSE Tumbleweed (via GeckoLinux Rolling) on it. This distro is aimed at professionals (developers and sysadmins). It’s much closer to the “bleeding edge” than Debian or Ubuntu. Packages are typically only delayed about a few days to a week from their upstream releases, and they use automated testing to help provide stability. As a rolling release, you get multiple Tumbleweed releases and hundreds of package updates per week. It comes configured with snapper for btrfs snapshots that can be booted directly from grub. Interestingly, the GeckoLinux installer was last released in August of 2022 and does not do a network install. The Zypper package manager successfully completed nearly 2 years worth of updates without issue, which really impressed me. Tumbleweed has a good software selection, although not quite as complete as Debian, Arch, and Fedora. I've seen cases where Void has a package in its official repos that Tumbleweed doesn't, but it’s pretty rare that I run into any availability issues I care about. Tumbleweed detected the CPU microarchitecture on the laptop automatically, and it feels very snappy; easily the best laptop experience I’ve had.
As impressive as Zypper is at resolving updates, it’s also slow, largely because it does not support parallel downloads. And sometimes packages have unusual names that depart from common conventions on other distros, which can add some uncertainty when searching.
Because of its extensive testing, Tumbleweed is known as a “stable rolling release.” However, during my time with it, there have certainly been exceptions that have led users (including me) to have to rollback to an earlier btrfs snapshot. Issues in just the past few months included AMD graphics issues, Intel wifi issues, and hyprland getting out of sync with one of its dependencies.
openSUSE (or whatever it will be called) has another offering that is in beta right now: Slowroll, which offers monthly releases with security updates in between. This sounds pretty appealing, as rollbacks still inevitably suck up time with research and checking forums to see when issues have been resolved. Slowroll should be able to avoid most of the issues that pop up on Tumbleweed, and being just one to two months behind upstream releases is still better than point release distros.
CachyOS
Eventually, after I was feeling good about rolling releases with Tumbleweed, I wanted to replace Tuxedo OS on the desktop. I had seen CachyOS early in my research, but dismissed it since it was Arch-based, and Arch has a reputation for being hard to maintain. But after trying several other distributions on VMs, I gave it a closer look and really liked what I saw, so installed it on my desktop in mid-August.
CachyOS has to be on the efficient frontier for ease of use and up-to-date software, plus it’s one of the highest benchmarking OSes out there. The installation was very easy. It's not as minimal as Arch but installed fewer packages than Tumbleweed. It provides shortcuts to setup btrfs snapshots with snapper (you need to choose grub as the bootloader and install btrfs-grub
to enable booting directly into them), as well as enabling AppArmor and secure boot. CUDA also just worked right out of the box. And it’s optimized for your CPU microarchitecture, which it automatically detects on installation, with an improved scheduler.
It provides a GUI to trigger common package management, system update, and maintenance tasks. In short, it provides Arch on easy mode, although it's probably a good idea to learn more about maintaining an Arch system. And it occasionally requires manual intervention, just like Arch. However, despite its Arch roots, I don’t feel qualified to “btw” people.
This distro was the biggest surprise to me. Despite Cachy’s warnings about hyprland, it has worked just fine—especially after I switched to running Hyprland on the iGPU, leaving the Nvidia GPU reserved for CUDA-related tasks. In short, it’s ease of use and btrfs snapshots have made the bleeding edge feel relatively easy and stable so far. And if you're into gaming, it's apparently one of the best options.
Void
I installed this one on an old laptop (after some VMs) to play around and thought it would end up on my desktop. It’s a minimal, lightweight distro without systemd, and is on the efficient frontier of stability for a rolling release, but at a more conservative point than Tumbleweed/Slow Roll. Package releases appear to be more curated; for instance they didn’t make Plasma 6 available for months while they felt it still had too many bugs. Void’s default kernel hasn’t been updated in nine months, which is a bit unusual compared to the two to five month cadence they had prior to that.
It has very high user satisfaction, including the highest average user rating on distrowatch, although it probably has a high self-selection bias, attracting mostly experienced users. It has surprising software availability for small user base, with some major caveats. For instance, it has no browser forks; so no derivatives of chromium or firefox, leaving users to compile for themselves or to use a 3rd party repo. It also does not have hyprland in its official repos, and the installation process looks non-trivial (although this may change with hyprland’s recent breakup with wlroots). It provides templates for installing packages from source in git repos. It provides the choice between glibc and musl, but you’ll need glibc version (opposed to musl) to use Nvidia proprietary drivers and CUDA.
Along the same lines as Tumbleweed, Void is considered a “stable rolling release,” and Void is considered even more stable. However, I’ve realized there is no such thing as a truly stable rolling release, and it appears that Void had a bit of trouble in the transition from KDE Plasma 5 to 6. And oddly enough, Plasma 6 is still available through a package called kde5
.
As a minimal distro, it presents a good way to learn more about Linux. And while the documentation is pretty good, you’re on your own if you want to go off the beaten path, which may require a chroot installation. I see the appeal of Void, and I may tinker with it a bit more to see if I can get a setup I like. But for now, it seems like a bit too much work compared with CachyOS. This makes me think there may be room for an unofficial spin to help install with encryption, secure boot, snapper, btrfs snapshots, grub, and a wrapper around xbps to automate the snapshots.
Also considered
These are some other distros I tried out on VMs, but did not bother to install on real hardware.
Fedora
This distro is popular with developers, but tends to be experimental, moving to new technologies quickly. It has a relatively frequent, six month point release schedule. Fair or not, KDE Plasma is often portrayed as a second class citizen to them. In my VM installation, the KDE spin used by far the most RAM of any distro I tried.
Nobara
Nobara is a distro focused on gaming, which is not my main use case, but I had heard that it fixed up a lot of frustrations with Fedora (like making Nvidia drivers easy and good KDE Plasma support), so I took a look. Ultimately, I decided the point releases were too much of a drawback and I didn’t want all the gaming packages. I think I read that Nobara uses some of Cachy’s kernel patches for performance, and Cachy offers some gaming packages from Nobara’s creator, so for gamers it may come down to a preference between Fedora and Arch as a base for these two.
Honorable mentions
These are some other distros that I never installed on hardware or VMs, but are worth mentioning.
NixOS
NixOS seems to have leapfrogged in popularity in recent years. My impression is that it is a minimal distro, which is good for tinkering, has up-to-date software, and build-via-config file leads to easily repeatable installations.
However, needing to learn a new configuration programming language was a deterrent. It also departs from the Unix filesystem hierarchy standard, which can lead to compatibility issues, and even requires a different shebang on shell scripts by default. So, a little like Macs, this seems to be off from the rest of the Linux world. I may tinker with this on VMs in the next few years.
Gentoo and Arch
I never really considered using these, as they seem to require too much attention from their users, but I want to include them for completeness. These are rolling, minimalist, bleeding edge distros aimed at people who know what they’re doing (or are willing to spend a lot of time ramping up). Gentoo even required compiling source code locally, giving its users greater control over compilation options to get exactly what they want, although they recently added optional binary packages as well. Their user bases are extremely knowledgeable and active, as evidenced by their extensive wikis. Despite its reputed propensity for borking after updates, my impression is that Arch has become more reliable, which also benefits Cachy.
Tips for new users
Some may hesitate to replace the OS that came with their computer. Switching it is not as scary as it seems, particularly if you choose a distro with a friendly GUI installer. If you’re coming from Windows, you can always reinstall Windows if you’re not happy. Windows ties licenses to hardware for OEM installations, which makes it especially easy to switch back if needed, or you could dual boot. Also practice installing distros on VMs first, and look up anything in the process you’re unsure about. Take notes during installation and configuration, both during the VM and real hardware installations.
Just use the bash shell to start. Some users will advocate for fish or zsh, but you’ll have the easiest time if you just start with bash. Fish can be especially troublesome in how it veers from POSIX standards.
Try to stick to official distro repos for software, as these tend to be the most reliably maintained and in sync with each other. Some distributions offer user contributed repos, such as the AUR (Arch), OBS (openSUSE), copr (Fedora), PPAs (Ubutntu) to supplement the official repos. But you should use them only when needed, as they are more likely to lead to dependency conflicts and potential security issues, especially until you get the hang of what you’re doing.
Don’t chase extremes to the detriment of usability. For instance, Clear Linux will show the best performance benchmarks, but it’s not a user-friendly desktop OS. Alpine is among the most minimal and secure operating systems, but would be a pain to use as a daily driver. Both of these are made for enterprise use cases and are not intended for personal use.
Most servers you’ll work with are likely to be Debian-based (including Ubuntu) or Fedora-based (include Amazon Linux 2). So if your main purpose is to get experience with a distro you are likely to work with on a server, choose a Debian or Fedora distro or derivative.
If you don’t know which distro to use, just try the live USBs for Linux Mint and TuxedoOS and pick the one you like better. They are both Debian -> Ubuntu derivatives. If gaming is a big use case, then look at Bazzite (which is Fedora based) as well.
One common way new users bork their system is
- Google their problem online
- Find a post they think matches their problem
- Follow the solution by copying and pasting shell commands or configurations without understanding them
- It turns out it was a subtly different problem than their own
- Now the changes give them a new, worse problem
So if you find a potential solution, don’t blindly copy and paste commands (which is also a security risk); go research the solution further to make sure it makes sense for your specific case. Could be for a different distro, or a different distro version, or different graphics card, etc.
If you want resources to learn Linux, The Linux Command Line is a good one for a new user, and How Linux Works will teach users more about how their system works under the hood.
Tips for users moving to a rolling distribution
Rolling distributions like Arch require their users to stay on top of news that may require manual intervention, something users of Debian and its derivatives, can mostly ignore. I've found for bleeding edge projects like CachyOS and hyprland that it suffices to join their Discord servers to receive announcements about updates.
The more up-to-date distros like Arch, CachyOS, and Tumbleweed will have software updates available every day. Falling too far behind risks a botched update (although Tumbleweed seems to do fine). It should suffice to update once per week at some point when the user has sufficient time to handle any inconveniences that may arise. I recommend rebooting immediately after the system update to check if anything went wrong so you can rollback if needed.
Speaking of which: practice rolling back at least once after setting up snapper btfs snapshots on grub to make it sure it works and do this immediately after a system upgrade. You can simply install one package you don't intend to keep, reboot into the previous snapshot, rollback, and reboot again.
Most useful resources for learning about distros
Here I want to share some resources I’ve found helpful over the past six months or so as I’ve been looking around the Linux landscape to evaluate options. You need to be a little careful with content creators, since they err to the side of too much content. For instance, some may make distro-hopping appear more desirable than it really is, and they do so on studio machines that don’t really impact their own personal use.
- Linux User Space podcast
- They spend one month with each distro they cover (except for one year on GenToo), which gives them good perspectives on the pros and cons of each distro.
- The Linux Cast
- Matt gives thorough distro reviews from a non-developer perspective, which helps give a sense for user-friendliness. He also provides good reviews of other Linux software like file managers.
- A1RM4X
- A1RM4X focuses on distros for gaming and content creation, which aren’t my main use cases, but I like his coverage of installations and usability, even if I skip over the fps benchmarks. Plus, lots of CachyOS content.
- Distrowatch
- I usually read the last year’s worth of reviews when researching a distro to see what themes come up, and I think the average user reviews are telling. I wouldn’t really consider a distro with under an 8.0 average, and I would take an average rating with a grain of salt if it has fewer than 30 reviews.
Other useful Linux channels
- Brodie Robertson
- Brodie provides a very technical user perspective, but does not do that many distro reviews. He does provide good reviews of other software like file managers. He did this video for new Linux users.
- Chris Titus
- Chris Titus brings a sysadmin perspective and also does quite a few live streams, which can be useful for seeing installations. He also has some material geared toward beginners such as this one on choosing a Linux distro with this accompanying video and this Linux explainer for beginners and its video.
There are some other ones I’ve found that have helpful tips, cover recent news, or specialize in niche distros, but I think that’s enough to get a Linux newbie started.
Conclusion
I’ll sum up my thoughts from this recent Linux deep dive:
- btrfs +
snapper
+btrfs-grub
= bork insurance - Bork insurance can give users more confidence in using up-to-date, rolling release distros
- openSUSE Tumbleweed is great and GeckoLinux makes it easy to get started with (and the new agama installer looks promising as well). I suspect Slow Roll will be an even better choice for me once it's out of beta and hyprland's development stabilizes.
- Void’s curated, stable rolling release also looks appealing and may be where I eventually land on the desktop, but requires a fair amount of work to go outside the standard installation path. I think an unofficial spin that adds bork insurance and other common needs, similar to SprialLinux, could be helpful here.
- CachyOS has been the biggest surprise. I would have never guessed that I would end up on CachyOS with hyprland back in March. I never thought I would use an Arch-based distro due to active management it demands, but Cachy was just that easy to set up. If it proves stable enough over time, I may stick with it over Void.
- I’m also interested to see where the atomic/immutable distros go by the next time I need to upgrade.