Look, I’ve only been a Linux user for a couple of years, but if there’s one thing I’ve learned, it’s that we’re not afraid to tinker. Most of us came from Windows or macOS at some point, ditching the mainstream for better control, privacy, or just to escape the corporate BS. We’re the people who choose the harder path when we think it’s worth it.
Which is why I find it so damn interesting that atomic distros haven’t caught on more. The landscape is incredibly diverse now - from gaming-focused Bazzite to the purely functional philosophy of Guix System. These distros couldn’t be more different in their approaches, but they all share this core atomic DNA.
These systems offer some seriously compelling stuff - updates that either work 100% or roll back automatically, no more “oops I bricked my system” moments, better security through immutability, and way fewer update headaches.
So what gives? Why aren’t more of us jumping on board? From my conversations and personal experience, I think it boils down to a few things:
Our current setups already work fine. Let’s be honest - when you’ve spent years perfecting your Arch or Debian setup, the thought of learning a whole new paradigm feels exhausting. Why fix what isn’t broken, right?
The learning curve seems steep. Yes, you can do pretty much everything on atomic distros that you can on traditional ones, but the how is different. Instead of apt install whatever
and editing config files directly, you’re suddenly dealing with containers, layering, or declarative configs. It’s not necessarily harder, just… different.
The docs can be sparse. Traditional distros have decades of guides, forum posts, and StackExchange answers. Atomic systems? Not nearly as much. When something breaks at 2am, knowing there’s a million Google results for your error message is comforting.
I’ve been thinking about this because Linux has overcome similar hurdles before. Remember when gaming on Linux was basically impossible? Now we have the Steam Deck running an immutable SteamOS (of all things!) and my non-Linux friends are buying them without even realizing they’re using Linux. It just works.
So I’m genuinely curious - what’s keeping YOU from switching to an atomic distro? Is it specific software you need? Concerns about customization? Just can’t be bothered to learn new tricks?
Your answers might actually help developers focus on the right pain points. The atomic approach makes so much sense on paper that I’m convinced it’s the future - we just need to figure out what’s stopping people from making the jump today.
So what would it actually take to get you to switch? I’m all ears.
we’re not afraid to tinker
what’s keeping YOU from switching to an atomic distro
- Being able to tinker. Atomic distros are about choosing in advance to not tinker with a large part of your system. There’s good reasons to do that, sure, but not good enough for me right now.
Atomic distros are not inherently immutable, although they often are because it’s an easy byproduct of atomic design.
Atomicity means transactions are either applied in whole or not at all. That means that your system will never be stuck in a broken half-way state if it crashes during an update.
In practice, this is often implemented through filesystem images that are mounted for instant changes. These are then often mounted as read-only for immutability, but distros usually have options to use them as read-write as well for tinkering.
In my opinion, atomicity is the future. The risk of your system breaking during every upgrade is tolerable, but why not eliminate it altogether? Immutability is a different game and is mostly a preference thing.
Thank you for the correction. So then, a more tinker-ready OS could do atomic upgrades, but allow manual changes/customisation to the system internals. And also handle traditional distribution-style package installation.
I suppose some people might still want to upgrade certain packages and not others, but that seems a pretty rare case these days - or maybe I just don’t hang out in the right crowds!
I suppose some people might still want to upgrade certain packages and not others, but that seems a pretty rare case these days - or maybe I just don’t hang out in the right crowds!
That would still be possible, actually! You can totally choose what packages to upgrade (depending on the distro). NixOS even lets you have multiple versions of the same package installed at once—another uninherent but easy byproduct of atomic design.
Atomicity is just a technical part of how it works under the hood. Normally when you install, uninstall or remove something, it directly does those modifications to your system. If your power goes out halfway through, you’re in trouble.
Most atomic distros do those changes to a separate filesystem image instead. Then when it’s finished, it instantaneously applies the all of the changes you did by mounting the new image. If your power went out halfway through, you’ll just be booting to the old image, untouched and pristine.
That doesn’t limit what you can or can’t do. You can do all kinds of tinkering and all kinds of partial upgrades to the image (again, depending on the distro). But when it’s all done, you can apply all the changes you did instantly.
Here’s another example. One way to atomically change a single file is to use
mv
. Moving within the same filesystem simply renames the file and does not transfer data.Imagine you’re adding a ton of lines to a live script, including
rm -rf ~/tmpdir
. If you directly modified it, there’s a chance that something could execute it while it was only partially written to the disk and runrm -rf ~
instead. Yikes.But if you wrote it to a separate file instead, you could apply your huge set of changes in an instant by using
mv
to replace the original file. That’s atomicity. It’s also actually howsudoedit
/visudo
works and one of the reasons why it’s recommended over justsudo "$EDITOR"
.Cool! Thanks for explaining.
Managing 30+ machines with NixOS in a single unified config, currently sitting at a total of around 17k lines of nix code.
In other words, I have put a lot of time into this. It was a very steep learning curve, but it’s paid for itself multiple times over by now.
For “newcomers”, my observations can be boiled down to this: if you only manage one machine, it’s not worth it. Maaaaaybe give home-manager a try and see if you like it.
Situation is probably different with things like Silverblue (IMO throwing those kinds of distros in with Guix and NixOS is a bit misleading - very different philosophy and user experience), but I can only talk about Nix here.
With Nix, the real benefit comes once you handle multiple machines. Identical or similar configurations get combined or parametrized. Config values set for Host A can be reused and decisions be made automatically based on it in Host B, for example:
- all hosts know my SSH pub keys from first boot, without ever having to configure anything in any of them
- my NAS IP is set once, all hosts requiring NAS access just reuse it implicitly
- creating new proxmox VMs just means adding, on average, 10 lines of nix config (saying: your ID will be this, you will run that service) and a single command, because the heavy lifting and configuring has already been done, once -…
I wonder if OP and about 3/4 of the people in here understand the difference between atomic and immutable.
I’m not sure I do, please can you explain?
Atomic distros update in a monolithic block and if it fails, it’s as if no part of it occurred.
Immutable distros have a readonly filesystem and you can’t change any part of the system without explicitly remounting the files to write, then doing your updates. It’s not necessarily atomic when that update occurs, either.
You don’t need to layer or containerize applications you install in an atomic system, you can install an application as normal with the system package manager, it just has to complete successfully to be installed, then it becomes part of the overall A/B update system.
Immutable distros need to containerize the installations, or use layering to apply applications to the underlying RO filesystem, which makes installing software rather a pain in the ass at times.
OP keeps using the word “atomic” but the questions and explanation are more about “immutable”. And my answer to them about why wouldn’t I use an immutable system is pretty much the last, installing/updating/troubleshooting non-system software is a pain in the ass. On a dev station, it’s a nightmare.
You are technically correct about “atomic” and “immutable”, but you’re missing that e.g. the Fedora images use the wording “atomic” to refer to their update procedure, and they implement this using an immutable system. Nobody here is misusing these terms, because they are both applicable in this context.
On a dev station, it’s a nightmare.
I’ve been very happy with it on my dev stations, definitely hasn’t been a nightmare!
FWIW, I actually do understand the difference 😅.
As the term “immutable distro” has -unfortunately- become a misnomer, I went with the (more) descriptive “atomic distro” instead. At least it rings better than names like “distro with transactional updates”, “distro with (some degree of) managed state” or -heck- “distro with anti-hysteresis properties” 😜.
Granted, perhaps the notion (and/or intention) to lump the likes of NixOS together with Endless OS under one oversimplified umbrella term isn’t being helpful either. But I digress…
Though, I find solace in the fact that (at least within these discussions) Gentoo is regarded as a traditional distro 🤣.
Or…, put more formally: Creating and maintaining precise terminology for the diverse Linux ecosystem is incredibly challenging. While nerds like myself would enjoy the classification work, the effort required to keep terms accurate and widely understood in this ever-evolving landscape is no joke 😭.
Anyhow, I might as well hijack the remainder of this comment to thank you and everyone else that made contributions to this discussion. Much appreciated!
Flatpaks are problematic enough on its own and I avoid them when at all possible.
I’d never want to make my whole system flatpak based. That’s the opposite of what I want.
I tried Silverblue.
And I wanted to run it without layering, cause everyone tells you to avoid it, since it kinda defeats the purpose of an atomic distro in the first place.First of all, it was buggy. As an example, automatic updates didn’t work, I had to click the update button and reboot twice for it to actually apply, even though it was activated in the settings.
None of the docs helped (actually, there wasn’t any in-depth documentation at all). And no one had a solution besides “It should actually just work”.
That’s the main advantage (the devs test with the exact same system you run) gone right from the start.Then Firefox is part of the base image, but it’s Fedora’s version, which doesn’t come with all codecs.
If you install Firefox from Flathub, you now have 2 Firefox’s installed, with identical icons in the GUI. So you need to hide one by deleting its desktop file. Except you can’t. So you have to copy it into your home directory and edit it with a text editor to hide the icon.
Then I went through all the installed programs to replace the Fedora version with the Flathub version, cause what’s the point of Flatpak if I’m using derivative versions? I want what the app’s dev made.Then it was missing command line tools I’m used to. Installing them in a container didn’t work well cause they need access to the entire system.
Finally, I realized even Gnome Tweaks wasn’t part of the installation, and it isn’t available as Flatpak.
That’s the point where I tipped my hat and went back to Debian. Which isn’t atomic, but never gave me any issues in the first place.Maybe it’s better now, I was on the previous version. Or maybe the Ublue flavours are better. But I don’t see any reason to start distro-hopping again after that first experience.
Honestly what you are describing here would bother me too. For example on my notebook I rely on configuring grub to use kernel argument
amdgpu.abmlevel=0
which fixes the screen colors getting washed out when in battery saving mode, but I doubt I would be able to configure grub on an atomic distro.
Let’s answer your question with a question: Why should I reimage my whole tailored home setup, have to learn a different method of doing everything on my system, and ultimately slow my workflow for an atomic system? Sure, it’s cool, but it’s not worth upending everything that I use for. I’m glad it exists, but I don’t currently have a need for it.
I actually used bazzite as my first mainstream linux distro and I hated it because every second command I pasted in didn’t work and I didn’t understand why. I eventually figured out it was due to the immutable nature of bazzite and began telling everyone to never use bazzite because it doesn’t work very well.
Now I actually understand what the actual upsides are and why it’s different I will change to mainstream distros to actually get a hold of what it’s usually like before considering changing back over.
The reason most people still stick with windows/Macs. Current OS just works. I personally run mint, it works.
Before this i run windows 10 LTSC. The only reason i jump to mint is because it is almost the same as windows.
Pretty much me.
I’ve been daily driving debian for many years. I’m very comfortable here.
In 2025 with docker containers and flatpaks the benefits of an atomic OS don’t feel very compelling.
I use Gentoo, and atomic just doesn’t seem like a fit for me. That said I could see it being great for people who don’t tinker. If I were to get a family member to use linux I might pick an atomic distro.
Guix is source base rolling release if you plan to keep it up to date weekly, so I don’t know why you feel it so distant from Gentoo. Binaries updates are still rolling released but their pace is slower.
I just really like portage, I guess. I know how to use it, and learning how to do the same thing in guix doesn’t offer any benefits that I know of that matter to me, yet. Maybe one day.
I’m on Debian stable on my desktop but I tinkered with SteamOS on the SteamDeck, so Arch.
no more “oops I bricked my system” moments
I don’t actually know what that means. If the system because unbootable it’s because I explicitly messed it up, for example by editing
fstab
or tinkering with GRUB. I honestly can not remember anapt update
that broke the system, and I don’t just mean my desktop (which I use daily, to work and play) but even my remote servers running for years.So… I think that part mostly comes down to trusting the maintainer of the pinned distribution. They are doing their best to avoid dependency hell in a complex setup but typically, if you do select stable, it will actually be stable.
I do have discussions like this every few months on Lemmy and I think most people are confused about what is an OS vs. what is an application. IMHO an application CAN be unstable, e.g. Firefox or the slicer for your 3D printer because you do want the very latest feature for some reason. The underlying building blocks though, e.g. kernel, package manager, arguably drivers, basically the lower down the stack you go, the more far reaching the consequences. So if you genuinely want an unstable system somehow, go for it, but then it is by choice, explicitly, and then I find it hard to understand how one could then not accept the risk of “oops I bricked my system” moment.
nothing. I am a bazzite and bluefin convert. it feels like a dream after 20+ years of futzing about with Linux.
Debian just works, it doesn’t complain if I forget to update it for a couple years, and I don’t feel like reinstalling my os this year
I have to admit, when it comes to new developments in the Linux world, I tend to live under a rock … never switched to Wayland, not because I have any ideological reservations, but because my favorite WM (a minimalist WM developed by a friend of mine) is available only for Xorg.
I had heard about NixOS before, but until I stumbled upon this thread, I didn’t have a good understanding about what an atomic distro is. Now that I have a bit of an understanding, I guess I can only repeat what others said before, it seems to be solving a problem that I don’t have. I’ve been using rolling release distros for a very long time (at first Gentoo, like, 15 or more years ago, but Arch (btw) for over a decade now, with occasional, typically short stints in Debian-based distros), and the amount of problems caused by updates has been negligible for the last decade (Gentoo overlays 15 years ago could be a pain, for sure).
It does sometimes bother me that my OS config seems to so … static these days, but then again I have so many things going on in life on that I don’t feel a huge need to prioritize changing an OS that feels blazingly fast to use, stable, minimalist, and basically checks all the boxes. It just became my high-productivity comfort zone.
I use Bazzite on my Steam Deck because I wanted to get LUKS encryption for the hard drive (and otherwise do not wish to manually maintain the computer). I cannot take what is effectively a general purpose PC out and about without encryption. Especially not with the current political climate in my country (USA).
From dealing with SteamOS, I am already familiar enough with how to set up a full dev environment on the immutable distros. So while that is not a challenge for me, it is still a hassle to deal with. I’d rather just directly install my libraries and binaries rather than do workarounds in containers (and then remember the containers).
I think we’ll truly be in the immutable desktop distro future when I can do something like install the base distro image AND simply
dnf install
something (e.g.nvidia-vaapi-driver
orgcc
) on top without having to layer it withrpm-ostree
. That is, my dnf installs should transparently live on top of the base distro, and that way my base system will never break even if something on top of it does. The problem with layering with rpm-ostree is you are running the risk of a future failed upgrade. It would be like if your MacBook said “sorry, you installed a weird XCode library and therefore we cannot upgrade the OS” – and that should obviously never happen. Restoring my computer to a base state could be as simple asdnf remove *
or a GUI option to “Revert to base + keep user files” and that should leave me with a functioning basic system.Anyway, even though I only use an immutable distro on one device I do see it as the future of Linux desktop computing. I am not up-to-date with the development efforts, but I think we’ll eventually reach a day when using and configuring it, even for advanced users, will be no more difficult than traditional distros. Maybe by 2030 that will be the case.
I made my remarks w.r.t. rpm-ostree and the Fedora family of distros because that’s what I use. Obviously the other immutable distros have their own versions of these tools and their own versions of solving the problems related to them.
It’s cool but it’s just more hassle than it’s worth at the moment.