this post was submitted on 13 Jan 2025
363 points (94.4% liked)

Linux

53712 readers
704 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS
 

I recently took up Bazzite from mint and I love it! After using it for a few days I found out it was an immutable distro, after looking into what that is I thought it was a great idea. I love the idea of getting a fresh image for every update, I think for businesses/ less tech savvy people it adds another layer of protection from self harm because you can't mess with the root without extra steps.

For anyone who isn't familiar with immutable distros I attached a picture of mutable vs immutable, I don't want to describe it because I am still learning.

My question is: what does the community think of it?

Do the downsides outweigh the benefits or vice versa?

Could this help Linux reach more mainstream audiences?

Any other input would be appreciated!

(page 5) 50 comments
sorted by: hot top controversial new old
[–] [email protected] 12 points 3 months ago

what does the community think of it?

It's important to note how the Linux community interacts with change. In the past, whenever a change has been significant enough to influence individual workflows, it often provoked strong reactions. This was evident when systemd was introduced and adopted by distros like Arch and Debian. Even though systemd was arguably superior in essential aspects for most users, it failed to meet the needs of at least a vocal minority. Consequently, community endeavors were set up to enable the use of Debian or Arch without systemd.

Similarly, the introduction of immutable distributions seems to upset some people, though (at least to me) it's unjustified. Immutable distributions don't necessarily alter the traditional model. For instance, the existence of Fedora Silverblue doesn't impose changes on traditional Fedora; let alone Arch or Debian.

But, overall, most Linux users aren't bothered by it. Though, they often don't see a use for themselves. Personally, I attribute this at least in part to existing misconceptions and misinformation on the subject matter. Though, still, a minority^[1]^ (at best ~10%) actually prefers and uses 'immutable' distros.

Do the downsides outweigh the benefits or vice versa?

Depends entirely on what you want out of your system. For me, they absolutely do. But it's important to note that the most important thing they impose on the user is the paradigm shift that comes with going 'immutable'. And this is actually what traditional Linux users are most bothered by. But if you're unfamiliar with Linux conventions, then you probably won't even notice.

As a side note, it's perhaps important to note that the similarities between traditional distros are greater than the similarities between immutable distros. Also, Fedora Atomic is much more like traditional Fedora than it is similar to, say, openSUSE Aeon or Vanilla OS. Grouping them together as if they are a cohesive group with very similar attributes is misleading. Of course, they share a few traits, but overall, the differences are far more pronounced.

Therefore, it is a false dichotomy to simply label them as traditional distros versus immutable distros. Beyond these names, which we have assigned to them, these labels don't actually adequately explain how these systems work, how they interact, how their immutability is achieved (if at all), what underlying technologies they use, or how they manage user interactions. The implications of the above. Etc.

Could this help Linux reach more mainstream audiences?

The success of the Steam Deck and its SteamOS are the most striking and clear proof of this. So, yes. Absolutely.


  1. Not accounting SteamOS users.
[–] [email protected] 1 points 3 months ago* (last edited 3 months ago)

TL;DR: My desktop PC uses EndeavourOS and the only immutable experience I have is SteamOS 3. I can't say one approach is better than the other, but I like having the newest software and packages in my system. And that's best provided with a rolling release. I also think that sandbox systems like Flatpak and the several alternative installation methods besides the system package manager is an added complexity for a new user in Linux.


I don't mind using an immutable system (BTW another term that describes this kind of system is Atomic, which comes from Fedora), as long as it is designed around it and works well. The only immutable system I use is on my Steam Deck with the pre-installed SteamOS 3. My generic desktop personal computer is using an Archlinux derivative EndeavourOS with a rolling-release, where I have much greater control over the system.

Both systems have their strengths. I don't think that my mutable and always up to date system is breaking more often than the other system. The best part of it is, its always up to date and I get the newest applications. I try to not use much Flatpaks or AppImages (but do for certain apps, where I have no other choice for ease of use). And an immutable system naturally basically asks me to use Flatpaks and other user space package formats that is not handled by the distribution itself.

Even though I have some thoughts on it, I am not excluding one approach. Many say that immutable distributions are good for new users to Linux. I think this adds some complexity and problems, because they need to use sandbox systems like Flatpak. And that's if they know that they are using Flatpak, because sometimes the app distribution gives options like AppImage and custom installer scripts as well. This is all confusing for someone who just starts with Linux. On top of it, the sandbox of Flatpak requires some additional setup and configuration for some apps, to access certain hardware or filesystems in example.

All in all, I tend to like the traditional "mutable" distribution system as a rolling release model the most. But I'm an not excluding any other and would use a good "immutable" one; I just didn't try any other than the one in my Steam Deck.

[–] [email protected] 4 points 3 months ago

I switched to silver blue after a bad update and my experience has been almost identical if not smoother than standard fedora

[–] [email protected] 30 points 3 months ago* (last edited 3 months ago) (2 children)

NixOS is kinda the best of both worlds, because it does everything in a way that is compatible with an immutable fs, but it doesn’t force you into abiding by immutability yourself.

You can always opt into immutability by using Impermanence, but I’ve never seen any reason to.

Edit: That said, the syntax has a steep learning curve and there are tons of annoying edge cases that spawn out of the measures it takes to properly isolate things. It can be a lot to micromanage, so if you’d rather just use your system more than tinker with it, it may not be a good fit.

load more comments (2 replies)
[–] [email protected] 12 points 3 months ago (8 children)

It's subjective. I freaking love Bazzite, it works for me. Not the other way around.

load more comments (8 replies)
[–] [email protected] 1 points 3 months ago* (last edited 3 months ago)

I don't mind flatpaks, but overall I don't enjoy how software installs on immutable distros if it's not flatpacked. It's quite a kludge.

[–] [email protected] 15 points 3 months ago* (last edited 3 months ago) (5 children)

I am a big fan of breaking my system

load more comments (5 replies)
[–] [email protected] 2 points 3 months ago

I need to run immutable distros more, and I need to figure out how to roll my own images.

Desktop side, I need certain things in the base image rather than adding more layers or using a container. Things like rsync, nvim, git, curl, lynx, etc.

Would immutable distros help reach more desktop audiences? Perhaps. It’s more about applications though. The biggest help has been electron apps and the migration to web apps. The Steam Deck is successful because it has applications people want.

Server side, they look really promising for bare metal servers. Provided, there is an easy way to compile custom images. Being able to easily rollback to a known good image is very enticing, as you point out.

[–] [email protected] 3 points 3 months ago (8 children)

Has anyone had good success with setting up a development environment in an immutable distro? I love the entire concept because it fits with a lot of my other software preferences, but the tools for containerized dev environments felt frustrating.

Like, what do you do for your editor? vscode + devcontainers feel like the best option, but it's rough when I need other IDEs (like I use some of the Jetbrains products). Stuff like toolbox works well too, but to get an editor in that, you have to install it in each one, or make a container that has it built in.

Otherwise, I'll stick with plain Fedora — I use flatpaks for all of my apps anyways (except my editor)

[–] [email protected] 4 points 3 months ago (2 children)

Personally, I have found the developer experience on Bluefin-dx (the only one I’ve tried…) to be…. mixed.

VSCode + Devcontainers, which are the recommended path, are pretty fiddly. I have spent as much time trying to get them to behave themselves as I have actually writing code.

Personally, I’ve resorted to using Homebrew to install dev tools. The CLI tools it installs are sandboxed to the user’s home directory and they have everything.

It’s not containers - I deploy stuff in containers all the time. But, at least right now, the tooling to actually develop inside containers is kind of awkward. Or at least that’s been my experience so far.

I think the ublue project is fantastic and I really like what they are doing. But most of the world of developer tooling just isn’t there yet. Everything you can think of has instructions on how to get it going in Ubuntu in a traditional installation. We just aren’t there yet with things like Devcontainers.

load more comments (2 replies)
[–] [email protected] 3 points 3 months ago (4 children)

I do my main development with Bazzite. I use the Neovim flatpak for my editor and toolbox for builds and such.

load more comments (4 replies)
load more comments (6 replies)
[–] [email protected] 8 points 3 months ago

I've used Bazzite for the last year or so after distrohopping for a while and landing on Arch. I learned how 'atomic' distros, as the Fedora folks call them, work. It sounded like my phone, where apps are relatively sandboxed and automatically update. I said 'this is how computers should work' and stuck to it.

I wouldn't use standard Silverblue/Kinoite or standard Fedora. The uBlue images include so many drivers and fixes on the image that make the primary distros look incompetently made if you're not a power user. They wouldn't like me saying that because their work is only possible because of what Fedora does. But by that I mean, you will eventually run into something that doesn't work and it always comes down to some licensing or scope issue that the developers simply don't care about.

Having to do literally anything extra to get your NVIDIA GPU drivers frankly isn't acceptable when that's not the case for AMD cards. Let alone having to modify grub in the worst case if your distro doesn't boot properly. If I have a part or plug something in that isn't some hyper specific piece of technology, it should just work, because it isn't 1999 where you need driver CDs anymore.

The main tradeoff is that for users who aren't very technical, installing anything outside of flatpaks probably won't make any sense. They have guides, and stuff like brew and distrobox isn't that difficult when you understand it. But having 4 different ways to install stuff (flatpak, brew, distrobox, layering) sounds ridiculous and confusing on its face.

I have a practically 0 maintenance system with Bazzite and that's the way I like it even though I'm perfectly capable of running anything else and modifying it to my liking. The average user isn't going to care about anything they're missing by not being able to modify certain files, or if they do, there's probably a better way to do whatever it is they're trying to do that doesn't involve running random bash scripts.

I would recommend Aurora and Bluefin to all my Windows/Mac friends who aren't gamers, and Bazzite or Bazzite-gnome to everyone who is. I would never recommend anything else at this point, not even something like Mint, because I consider the uBlue images to be just that good and the tradeoffs of the weird program installation to be more than worth it. Other immutable/atomic distros are too immature (like Arkane Linux) or work fundamentally differently to Fedora Atomic and rely more on things like snapshots (like OpenSUSE Aeon/Kalpa) so I'm not really comfortable recommending them either.

[–] [email protected] 20 points 3 months ago* (last edited 3 months ago) (1 children)

Secure != stable Immutable distros aren't always more secure but rather more stable and hard to break Also btw nixos can apply updates without rebooting

[–] [email protected] -1 points 3 months ago (3 children)

I wouldn't call NixOS immutable.

[–] [email protected] 10 points 3 months ago* (last edited 3 months ago) (6 children)

NixOS is immutable and atomic, but it isn't image-based.

Immutable simply refers to how the running system configuration can't be changed by simply putting a file somewhere (e.g. copy a binary to /bin, which is a bad idea).

For example, Fedora Atomic and derivatives are image based, although they are more flexible than the A/B types like SteamOS.

OpenSUSE MicroOS uses btrfs snapshots to apply updates atomically, and is more flexible than most image based immutable distros.

Edit: But I don't think those terms have a single definition, so how where would you differentiate the terms?

load more comments (6 replies)
[–] [email protected] 2 points 3 months ago (7 children)

It can be made to be by pinning various things which are not by default.

load more comments (7 replies)
[–] [email protected] 2 points 3 months ago (1 children)

In your opinion, when can we refer to a distro as being immutable? How do you regard the likes of Fedora Atomic, openSUSE Aeon or Vanilla OS? Are any of these immutable in your opinion?

load more comments (1 replies)
[–] [email protected] 10 points 3 months ago (1 children)
[–] [email protected] 6 points 3 months ago (1 children)

I'm not really sure how the upsides of immutable distros work. I've been using linux for a long time and I'm not an expert but I've learned bits of things here and there.

I recently bought a steamdeck and it's running an immutable distro. I don't really know how to use software that's installed via flatpak because it's weird.

I have a game installed that runs badly (unplayable for me) through proton. I can launch it through q4wine if I switch the steamdeck into "desktop mode" and it runs much better.

If it wasn't an immutable distro I could pretty easily make a shell script that launches the game through wine. Then I could add that shell script as a non steam game and it would (I think) run well, and I'd be able to launch it from the non desktop side of steam OS that is a lot more streamlined.

There is something comforting to me about immutable distros though.

I feel like I don't remember half the shit I have installed on my computers. If I wanted to start cutting things out I don't know where I'd start. But with flatpaks I get the sense I could probably just wipe anything I don't use out of the flatpak directory and I probably wouldn't break anything.

[–] [email protected] 7 points 3 months ago

I'm fairly certain you could still run that shell script on steamOS? I don't understand why an immutable distro would keep you from doing that. It's essentially what Lutris and Heroic Games launcher do.

[–] [email protected] 6 points 3 months ago (1 children)

I used an immutable fedora on my surface pro 4, I wanted to shoot myself in the face every time I had to install anything. I'm good on that for the rest of my natural life.

[–] [email protected] 1 points 3 months ago (1 children)

Was what you wanted not available in a flatpack/ app image?

[–] [email protected] 2 points 3 months ago* (last edited 3 months ago) (1 children)

Wasn't about that at all. Any DNF action took a lightyear... man just typing out those long commands (very hard to remember coming from apt) nevermind the much crazier wait time. Using toolbox for dev environments to compile things was a total nightmare. I'm sure there's a scenario where it's ideal, that was certainly not my situation.

[–] [email protected] 1 points 3 months ago (4 children)

Gotcha I was just wondering what the limitations are, I'm still messing with and I've not hit one yet but I was curious where they pop up. So for devs immutable distros don't play well, that definitely makes sense!

load more comments (4 replies)
[–] [email protected] 70 points 3 months ago (6 children)

It's definitely great for the mainstream. Think of Linus Sebastian who has somehow broken every OS except for SteamOS.

It's not great for me who uses Arch Linux btw with the expectation that if the system doesn't break on its own, then I will break it myself.

load more comments (6 replies)
[–] [email protected] 13 points 3 months ago (2 children)

is nixos considered immutable or mutable? kind of has characteristics of both.

[–] [email protected] 8 points 3 months ago* (last edited 3 months ago) (1 children)

I'd argue it's closer to a mutable distro than an immutable one.

Nixos tends to lean on the term reproducible instead of immutable, because you can have settings (e.g files in /etc & ~/.config) changed outside of nix's purview, it just won't be reproducible and may be overwritten by nix.

You can build an 'immutable' environment on nix, but rather than storing changes as transactions like rpm-ostree, it'll modify path in /nix/store and symlink it. Sure, you can store the internal representation of those changes in a git repo, but that is not the same thing as the changes themselves; if the nixpkgs implementation of a config option changes, the translation on your machine does too.

[–] [email protected] 7 points 3 months ago (1 children)

Nixos tends to lean on the term reproducible instead of immutable, because you can have settings (e.g files in /etc & ~/.config) changed outside of nix's purview, it just won't be reproducible and may be overwritten by nix.

Interesting. If possible, could you more explicitly draw comparisons on how this isn't quite the same over on say Fedora Atomic? Like, sure changes of /etc are (at least by default) being kept track of. But you indeed can change it. libostree doesn't even care what you do in your home folder. Thus, changes to e.g. ~/.config (and everything else in /var^[1]^) are kept nowhere else by default.


  1. Which happens to be more crowded than on other distros as folders like /opt are actually found here as well.
load more comments (1 replies)
[–] [email protected] 9 points 3 months ago (1 children)

nixos and guix are immutable and two of the only immutable distros I like

[–] [email protected] 3 points 3 months ago (1 children)

The store is immutable but the system itself definitely isn't.

[–] [email protected] 1 points 3 months ago* (last edited 3 months ago) (5 children)
load more comments (5 replies)
[–] [email protected] 41 points 3 months ago (1 children)
Immutable vs Mutable

weird        normal
[–] [email protected] 30 points 3 months ago (1 children)

More like familiar and unfamiliar

load more comments (1 replies)
[–] [email protected] 16 points 3 months ago (2 children)

I remain interested in the immutables or atomic distros because I know a lot of smart people that swear by them.

I also don't try them just yet because I know a lot of dumb people like me that end up breaking a lot of stuff before quitting them altogether.

They could be amazing and just not perfected yet or they may be a meme and no one's proved it outright just yet. Will be lurking this thread either way lool :D

[–] [email protected] 0 points 3 months ago (1 children)

Yeah I think atomic is more appropriate but I'm not exactly sure what the difference is?

[–] [email protected] 10 points 3 months ago (2 children)

Immutable = Read-Only Root FS && Updates entire system image rather than individual files
Atomic = Updates as single transaction (all or no update) && Containerization w/ Rollback capability

This is quick summary from quick research pls correct where technically wrong.

[–] [email protected] 12 points 3 months ago (1 children)

If we're asking what people mean when they use those descriptors, then you're correct.

However, literally speaking, in this context, immutable only means read-only, and atomic only means that updates are applied all-at-once or not at all (no weird in-between state if your update crashes halfway through).

The rest of the features (rollbacks, containerization, and immutable meaning full system image updates) are typically implied, but not explicitly part of the definition.

[–] [email protected] 4 points 3 months ago

I knew a real wizard would clarify sooner than later. Much obliged and keep up the good work anon!

[–] [email protected] 2 points 3 months ago

That makes sense, bazzite is referred to as atomic (that's what I meant in the above comment about atomic being more appropriate, forgot to add that context though lol) specifically instead of immutable. Bazzite updates like you said and you can always roll back, thank you for the explanation!

load more comments (1 replies)
load more comments
view more: ‹ prev next ›