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.

  • milicent_bystandr@lemm.ee
    link
    fedilink
    arrow-up
    8
    ·
    2 days ago

    we’re not afraid to tinker

    what’s keeping YOU from switching to an atomic distro

    1. 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.
    • Crestwave@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      18 hours ago

      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.

      • milicent_bystandr@lemm.ee
        link
        fedilink
        arrow-up
        1
        ·
        15 hours ago

        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!

        • Crestwave@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          10 hours ago

          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 run rm -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 how sudoedit/visudo works and one of the reasons why it’s recommended over just sudo "$EDITOR".

  • twice_hatch@midwest.social
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 day ago

    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

  • smiletolerantly@awful.systems
    link
    fedilink
    arrow-up
    6
    ·
    2 days ago

    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 -…
  • monovergent 🛠️@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 day ago

    Customizations, especially theming, at the system level. Or just learning to modify system files on an atomic distro, in general.

    I’m sure it’s doable and I am genuinely interested in moving to atomic/immutable distros. But more for the security aspect than reliability as I’ve yet to break my install of Linux in a way that takes more than an hour to recover from. I’ve enjoyed the predictability of Debian and my very particular taste in UI makes for additional baggage just reinstalling, let alone moving to a very different distro.

  • shapis@lemmy.ml
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    2 days ago

    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.

  • Heavybell@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 days ago

    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.

    • kixik@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      1 day ago

      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.

      • Heavybell@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        1 day ago

        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.

  • xavier666@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    2 days ago

    I once installed Bazzite on my PC. I am an sway user/addict. So thought about installing sway on Bazzite.

    Below is my journey


    Let me try to download and compile it.

    Downloaded but it won’t compile.

    The libraries/dependancies are not installed. Here, try installing the packages via brew.

    Nope, some of them are available and some are not on Brew.

    Now what do I do? Okay, there is something called distrobox where I can install whatever I want.

    Looks like I have to learn distrobox. Wait, sway is not a simple application, it’s a full blown window manager. Even if it compiles, will it work?

    Most of the people online (Discord) told me the process won’t be very pretty.

    Do I want to invest another week experimenting with distrobox?

    Nope, installed Nobara the next day and I’m happy.


    Disclaimer: Bazzite is a fantastic distro and it’s powering my RoG Ally. Atomic distros are fantastic for the niche they fill.

  • VeganCheesecake@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    2
    ·
    2 days ago

    I use atomic distros on my server and a media centre, but don’t see any reason to do it on my main systems. Stability is fine, and atomic distros make said tinkering more difficult.

  • Nyanix@lemmy.ca
    link
    fedilink
    arrow-up
    5
    ·
    2 days ago

    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.

  • John@lemmy.ml
    link
    fedilink
    English
    arrow-up
    47
    arrow-down
    2
    ·
    3 days ago

    oops I bricked my system

    I honestly can’t think of a single time I’ve done this in the 20 years I’ve been using linux.

    what’s keeping YOU from switching to an atomic distro

    I dunno, it just seems like the latest fad. Debian/Arch work just fine.

      • dosse91@lemmy.trippy.pizza
        link
        fedilink
        arrow-up
        9
        arrow-down
        1
        ·
        edit-2
        3 days ago

        It actually happened to me today on Arch.

        I updated the system, including the kernel, everything went smoothly with no errors or warnings, I rebooted, and it said the ZSTD image created by mkinitcpio was corrupt and it failed to boot.

        I booted the arch install iso, chrooted into my installation and reinstalled the linux package, rebooted, and it worked again.

        I have no explanation, this is on a perfectly working laptop with a high end SSD, no errors in memtest, not overclocked, and I’ve been using this Arch install for over a year.

        The chances of the package being corrupt when I downloaded it and the hash still being correct are astronomically low, the chances of a cosmic ray hitting the RAM at just the right time are probably just as low, the fact that mkinitcpio doesn’t verify the images that it creates is shocking, the whole thing would have been avoided on an immutable distro with A/B partitions.

    • iopq@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      3 days ago

      I bricked it because the Ubuntu LTS 22 to 24 upgrade failed and I forgot and rebooted anyway

    • StarlightDust@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      3
      ·
      3 days ago

      I’ve used Arch for 10 years as a primary desktop (well, Artix for the last 4) and barely had it bork on me. When is has, I’ve been able to boot it from grub in single user mode, mount my LUKS root drive, and downgrade whatever broke.

      SteamOS has been fine for me on the SteamDeck.

      I tried Bazzite for about a month then one day networking just broke and the documentation just wasn’t there.

  • ikidd@lemmy.world
    link
    fedilink
    English
    arrow-up
    18
    ·
    3 days ago

    I wonder if OP and about 3/4 of the people in here understand the difference between atomic and immutable.

    • HayadSont@discuss.onlineOP
      link
      fedilink
      arrow-up
      2
      ·
      1 day ago

      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!

      • ikidd@lemmy.world
        link
        fedilink
        English
        arrow-up
        12
        ·
        edit-2
        3 days ago

        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.

        • FooBarrington@lemmy.world
          link
          fedilink
          arrow-up
          3
          arrow-down
          1
          ·
          2 days ago

          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!

  • atzanteol@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    28
    arrow-down
    1
    ·
    3 days ago

    Near as I can tell they’re primarily aimed at desktop users who want to treat their computer like a smartphone.

    I do software development and need a ton of tools installed that aren’t just “flatpaks”. IntelliJ, Pycharm, sdkman, pyenv, Oracle libraries and binaries, databases, etc. The last time I tried this I ran into a bunch of issues. And for what gain? Basically zero.

    • priapus@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      edit-2
      2 days ago

      I don’t think that’s a very accurate assessment at all. NixOS, VanillaOS, and Bluefin are three of the first atomic distro’s I think of and they’re all heavily aimed at developers. All of them offer features to help separate development environments, which improve reproducibility of packages and environments. I prefer the Nix approach to containers, but each one definitely offers benefits for software development.

      I do software development and need a ton of tools installed that aren’t just “flatpaks”.

      Every atomic distro supports distrobox and other containerization tools, and many support Nix and brew.

      These distros are good for people who want to treat their desktop like a phone, but flatpak kinda lets you do that on any distro. Atomic distros are great for those who want to use tools to separate development environments for purity and tinker with the ability to easily rollback.

      • atzanteol@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        3
        ·
        2 days ago

        I don’t think that’s a very accurate assessment at all.

        It’s the sense I got. It made everything harder for me.

        Every atomic distro supports distrobox and other containerization tools, and many support Nix and brew.

        I like the idea of distrobox but it’s simply broken. Things just don’t “work”. I’ve hit weird problems each time I try to use it for anything meaningful (don’t ask what - I don’t remember and I was always jumping down rabbit holes to figure out how to just get things that should work working). And the shared home directory model is simply broken by design since you now get competing containers fighting over the same files. You can use per-container home directories and now you get to setup a linux environment from scratch for each distrobox. So much duplication of effort… What a terrible implementation of what is potentially useful idea.

        I thought it would be kinda like using Docker but it’s so much worse. Docker works well because the containers are often pretty simple with few requirements. Desktop environments are messy.

        And frankly it’s not really worth it in the end. pyenv, sdkman and others have basically solved that problem without adding weird things to debug. They genuinely “just work” and let you easily switch versions of java, python, groovy, etc.

  • pineapple@lemmy.ml
    link
    fedilink
    English
    arrow-up
    6
    ·
    2 days ago

    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.

  • pr06lefs@lemmy.ml
    link
    fedilink
    arrow-up
    28
    arrow-down
    1
    ·
    edit-2
    3 days ago

    I switched to nixos years ago. Its better now than it ever has been as far as available packages and etc. But it does present issues if you get off the beaten path - the “now you have two problems” issue. For instance:

    • if software is not packaged for nixos already, you won’t be able to follow the ‘build from source’ directions on its github page or etc. You have to make a nix package or at least development environment first. That can be tricky and you won’t have help from the software dev.
    • If software downloads exes that require libraries to be in a certain standard location, well, they won’t work. Android studio for instance, downloads compilers and so forth. There are workarounds, mostly, but it can take a while to discover and get working and I’m sure many people give up. Again, the android studio software and documentation will be no help at all.

    That said, more and more projects are supporting nix, and nixpkgs has gotten really big. I think they support more packages than any other distro now.