Skip Navigation
Immutable Distro Opinions
  • 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.
  • Immutable Distro Opinions
  • 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.
  • Immutable Distro Opinions
  • 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?

  • SteamOS expands beyond Steam Deck
  • Since you seem to know a lot about it let me ask you a couple of things:

    😅. I'll try my best 😜.

    Bazzite is immutable, right? I’m sure I saw that somewhere and Fedora Atomic is also immutable IIRC

    It is correct that the contents of / is immutable at runtime aside from /var and /etc. However, note that a lot of folders like /home and /opt are actually found in /var in response. This is later 'fixed' with symlinks and whatnot. In effect, only the contents of /usr (aside from /usr/share) is off-limits (or 'actual'[1] immutable).

    How does the config changes not get overwritten?

    I believe my previous paragraph already answers this. But, to be even more elaborate, Fedora Atomic makes use of libostree (read: git for your OS). With this, only the pristine images are 'swapped' in-between updates (or rebases[2]). Your changes to the system are found in /var, /etc and in so-called 'layers' only and are not swapped out. Some of these changes are kept track of[3], but most of them reside in /var and will not be touched by libostree.

    The whole point of an immutable distro is to prevent changes to files to ensure things keep working

    Kinda. The important part is that changes are prevented for the sake of a functioning system. But the entire system doesn't have to be locked down in order to achieve this. This does mean that it's actually not that hard to break your system. Just rm -rf /etc and your system will probably fail to boot into the very next deployment. But, as Fedora Atomic keeps at least two deployments, you will still be able to access the previous deployment in which you tried to delete /etc. So you're protected from accidental mishaps as long as you've got at least one working deployment. Thankfully, you can even pin working deployments with the ostree admin pin command. And..., just like that, the distro has basically become dummy-proof. I'm sure it's still possible to break the system, but you'd actually have to try 😉.

    So, in short, Fedora Atomic definitely intends to be a more robust system and succeeds. But, it does so while giving the user agency (and some responsibility).

    How are packages installed?

    I think everything of importance is mentioned in the docs. What is it exactly you want to know?

    The docs you sent recommend flatpak, which while very good in theory still has a small fleet of apps available.

    But that's just the first of seven "package formats" listed in the docs 😜. The other six will assure that your remaining needs are fulfilled.

    Also they suggest using distrobox among other things, that’s definitely not beginner friendly, although an interesting concept for an advanced user to have your main machine be an immutable host to any system you want.

    This is obviously anecdotal, but Fedora Silverblue was the first distro that I used. I was a complete Linux newb. My coding background was also just a Python-course on Uni. But, somehow, in the very newbie-hostile environment back then (read: April 2022), I managed with Toolbx. So..., yeah..., I can't relate. Sorry*. You might be absolutely correct. But, as I said, I don't recognize this from my own experience. I wish I had a video-tutorial back then, though. Honestly, with the amount of hand-holding Bazzite and its docs provide, I believe a newbie should be absolutely fine.


    1. It is even possible to overwrite this. Both in containerfile (requires creating own image) and on device (very hacky, not recommended).

    2. Rebasing is the process by which a different image is selected to boot and run your system from. For example, with this, one can switch from Silverblue (GNOME) to Kinoite (KDE) without reinstallation. This can even be used to switch from a Fedora image to a Aurora/Bazzite/Bluefin/secureblue image.

    3. These include the software you've installed through rpm-ostree (or soon dnf). We call these layered packages, based on the analogy that the packages aren't part of the image but are magically tacked on without you noticing anything finicky. It's quite magical. Besides that, any and all changes made to /etc are also kept track of. The former you can see by invoking rpm-ostree status, the latter by invoking ostree admin config-diff.

  • SteamOS expands beyond Steam Deck
  • Isn’t Bazzite an immutable OS with very limited package availability outside of gaming?

    Nope. It's basically Fedora Atomic with a lot of special sauce to make onboarding as pleasant as possible. Especially if you want to use it for gaming; be it as a HTPC/console or on desktop. Thus, like Fedora Atomic, you've got access to many different package managers to get your needs covered. Heck, Bazzite and its uBlue siblings actually improve upon Fedora Atomic in this regard (at least by default). Refer to this entry in its documentation for the finer details.

    but I’m not sure it would be a good experience for someone just getting into Linux, since most of the help he will get online

    We've all been faulty of this (read: searching on the internet), but we should instead consolidate Bazzite's documentation first. Only after it isn't found there, should one consider going to their discussion platforms; be it their own forums or their Discord server. Searching on the internet is IMO a no-go, especially if one isn't well-versed yet.

    will direct him to edit config files which would get overwritten on update.

    This doesn't apply to Fedora Atomic. Perhaps you're conflating this with SteamOS.

  • AuroraLinux any other users?
  • Aight, got it.

    For now, I'm exclusively on Wayland. Though, hopefully Openbox (or something inspired by it) will make the jump so that I can see for myself what all this goodness is about.

    Anyhow, it was a lovely conversation. I enjoyed it to bits. I wish ya tha best. Cya, out there. Bye!

  • AuroraLinux any other users?
  • Very enlightening! Thank you so much!

    mouse-centric

    This is actually unfortunate for me. I seem to be prone to RSI related aches. Keyboard is fine~ish. But mouse can be pretty troublesome. Do you happen to know if it plays nice with trackballs and/or trackpads?

  • GitHub - celenityy/Phoenix: Phoenix is a suite of configurations & advanced modifications for Mozilla Firefox, designed to put the user first - with a focus on privacy, security, freedom, & usability.
  • enabling a lot of the privacy features like resist fingerprinting often breaks login flows

    True. Though, in this case, it's only enabled on hardened. So, the default config doesn't enable it.

    and breaks dark mode detection on site

    Yeah, that's really unfortunate. I suppose there's Dark Reader. But, I believe Arkenfox' maintainers held the opinion that a bandaid solution as such did more harm then worth it. At least for those that enable RFP for the sake of fingerprint protection.

  • Does anybody in this sub using Fedora Secureblue?
  • Do you think I could run secure blue from a USB drive?

    I'm not sure if it's exactly the same, but Jorge Castro (one of uBlue's maintainers) showed how some uBlue projects (perhaps this also applies to secureblue) can be installed on an external drive. Perhaps it's worth a look: https://www.youtube.com/watch?v=5DRaYQ6hKU0

  • github.com GitHub - celenityy/Phoenix: Phoenix is a suite of configurations & advanced modifications for Mozilla Firefox, designed to put the user first - with a focus on privacy, security, freedom, & usability.

    Phoenix is a suite of configurations & advanced modifications for Mozilla Firefox, designed to put the user first - with a focus on privacy, security, freedom, & usability. - GitHub - cele...

    GitHub - celenityy/Phoenix: Phoenix is a suite of configurations & advanced modifications for Mozilla Firefox, designed to put the user first - with a focus on privacy, security, freedom, & usability.

    Disclaimer: I'm not affiliated to the project.

    Aside from the fact that it's relatively new and unknown, does this hold a candle to other Firefox-based projects? They seem to be competent by their own comparison tables.

    Has anyone got any first-hand experience?

    7
    GitHub - celenityy/Phoenix: Phoenix is a suite of configurations & advanced modifications for Mozilla Firefox, designed to put the user first - with a focus on privacy, security, freedom, & usability.
  • Yeah, it seems that they even acknowledge that Tor and Mullvad are better for extreme threat models.

    "The only browsers that can provide sophisticated fingerprinting protection against advanced scripts are Tor Browser & Mullvad Browser.

    If you have an extreme threat model (Ex. Political dissident, journalist, or if you are in some other kind of high risk situation), please use one of those browsers."

    I suppose we'd have to commend them for being fair.

  • github.com GitHub - celenityy/Phoenix: Phoenix is a suite of configurations & advanced modifications for Mozilla Firefox, designed to put the user first - with a focus on privacy, security, freedom, & usability.

    Phoenix is a suite of configurations & advanced modifications for Mozilla Firefox, designed to put the user first - with a focus on privacy, security, freedom, & usability. - GitHub - cele...

    GitHub - celenityy/Phoenix: Phoenix is a suite of configurations & advanced modifications for Mozilla Firefox, designed to put the user first - with a focus on privacy, security, freedom, & usability.

    Disclaimer: I'm not affiliated to the project.

    Aside from the fact that it's relatively new and unknown, does this hold a candle to other Firefox-based projects? They seem to be competent by their own comparison tables.

    Has anyone got any first-hand experience?

    5
    AuroraLinux any other users?
  • Thanks a ton for the elaborate answer!

    I’ve moved to cachy OS mainly because I needed to get certain things working that were only packaged in appimage

    Hmm..., I'm aware that the AppImage situation is pretty dire since it requires FUSE 2 libs while everyone and their grandmothers have moved to FUSE 3; software that's been almost out for a decade now. Thankfully, I've never actually experienced trouble getting it to work on any distro. Sure, installing some libs was often required, but nothing too fancy.

    BUT I believe I could have worked it out in Aeon by fiddling around with distrobox

    FWIW, I'm 100% positive that you could get it to work on Aeon. IIRC, I've also used AppImages through distrobox containers.

    I think once there is a mature wayland-based Openbox replacement

    Interesting. If it isn't too much of a trouble, could you pitch Openbox :P for me? I'm not too familiar with it, but you did get me curious.

    (eyes on labwc)

    Put into my backlog of stuff I've got to checkout.

  • Does anybody in this sub using Fedora Secureblue?
  • I was hoping that this reply wasn't needed 😅. In all fairness, some of the replies found on ycombinator definitely offer legitimate criticism. However, secureblue's dev team didn't just ignore all of that as they can be found discussing on the very same thread. Since then, they've actually implemented changes addressing these concerns. For example:

    Trading off possible kernel bugs against letting a whole LOT of userspace software run with real root privilege. And flatpak is a lot of attack surface no matter how you run it, and the packages have a bad security reputation.

    This was raised as a good objection to some of its design choices. This eventually lead secureblue's dev team to maintain twice as many images for the sake of offering images in which this was handled differently. And it didn't stop there, it has continued to output a lot of work addressing concerns both found on that thread and outside of it. Consider looking into its commit history. Heck, even some of the GrapheneOS-people have provided feedback on the project.

    Of course, no one dares to claim it comes close to Qubes OS' security model. Nor is this within scope of the project. However, apart from that, I fail to name anything that's better. Kicksecure is cool, but they've deprecated Hardened Malloc; a security feature found on GrapheneOS and that has been heavily inspired by OpenBSD's malloc design. By contrast, secureblue hasn't abandoned it. Heck, it elevated its use by allowing it to be used with Flatpak; something that hasn't been done on any other distro yet. This is just one example in which the secureblue dev team and its various contributors have shown to be very competent when it comes to implementing changes that improve security beyond trivial checkboxes.

    Peeps may name other hardening projects. But fact of the matter is that I'm unaware of another hardened Linux project that's quite as feature-rich:

    • Tails; cool project that does wonderful work against protecting one against forensics. But that's literally it. It's not even meant as a daily driver.
    • Whonix; developed somewhat together with Kicksecure, so this one actually has put in substantial work into hardening. But, again, not meant to be used as a daily driver.
    • Nix-mineral; cool project, but it's still alpha software by its own admission.
    • Spectrum OS; great idea, but it's not even out yet.

    Please feel free to inform me if I've forgotten anything. So, basically, if you want a hardened daily driver for general computing, then one simply has to choose between Kicksecure and secureblue. I wish for both projects to flourish, but I've stuck with the latter for now.

  • Does anybody in this sub using Fedora Secureblue?
  • Do you run Steam inside gamescope as well ?

    Nope I don't. But that's because running Steam isn't really a thing for me to begin with. I don't own my games through Steam aside from a couple that are only accessible through it. Whenever I need to play those, I access those through another system; be it another distro or (God forbid) M$. For the games I've played on secureblue, none of them were owned through Steam. Hence, running Steam inside gamescope has not been something I had to do yet. Unsure, if it even works as supposed.

    Does your setup support casks ?

    I actually don't know. It probably doesn't, though. EDIT: Found the following within Bluefin's documentation: "Note that the cask functionality in homebrew is MacOS specific and non functional in Bluefin, flatpak is used instead."

  • AuroraLinux any other users?
  • That was a great read. Wonderfully detailed. Thank you!

    It's a pity that it went down like that. Would you say that a properly matured openSUSE Kalpa would be your perfect setup? Out of curiosity, have you used projects related to Fedora Atomic for long periods of time? If so, how would you compare them?

  • Emulating NixOS' impermanence module on Fedora Atomic

    Hey folks! After using Fedora Atomic for quite a while and really appreciating its approach, I've been eyeing one particular feature from NixOS: its congruent system management. Inspired from Graham Christensen's "Erase your darlings" post, I'd like to explore implementing something similar to NixOS' impermanence module on Fedora Atomic as one step towards better state management.

    Why not just switch to NixOS? Well, while NixOS's package management and declarative approach are incredible, I specifically value Fedora's stringent package vetting and security practices. The nixpkgs repository, despite its impressive scope, operates more like a user repository in terms of security standards.

    I've already made some progress with the following:

    • Fedora Atomic's shift to bootable OCI containers has helped with base system reproducibility when one creates their own images. This process has thankfully been streamlined by templates offered by either uBlue or BlueBuild
    • Using chezmoi for dotfiles (would've loved home-manager if it played nicer with SELinux)

    My current (most likely naive and perhaps even wrong) approach involves tmpfs mounts and bind mounts to /persist, along with systemd-tmpfiles. I'm well aware this won't give me the declarative goodness of NixOS, nor will it make the system truly stateless - there's surely plenty of state I'm missing - but I'm hoping it might be another step in the right direction.

    Particularly interested in:

    • Best practices for managing persistent vs temporary state
    • Working with rpm-ostree's (or bootc') assumptions
    • Tools or scripts that might help
    • Alternative approaches that achieve similar goals

    Thanks in advance!

    15
    InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)JA
    jamesbunagna @discuss.online
    Posts 3
    Comments 38