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!

  • Chewy@discuss.tchncs.de
    link
    fedilink
    arrow-up
    12
    arrow-down
    2
    ·
    edit-2
    2 days ago

    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?

    • ivn@jlai.lu
      link
      fedilink
      English
      arrow-up
      6
      arrow-down
      2
      ·
      2 days ago

      I’m on NixOS right now and just dropped a Chewy in my /bin, only had to sudo touch /bin/chewy.

      • Chewy@discuss.tchncs.de
        link
        fedilink
        arrow-up
        3
        ·
        1 day ago

        Good point. I’ll have to stop using immutable and stay with atomic (and declarative).

        Interestingly /bin and /usr/bin are not in PATH by default, so /bin/chewy can only be executed by its path directly and won’t affect the systems reliability.

      • priapus
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 day ago

        That doesn’t make it not immutable. /bin is not a critical directory in NixOS, only the contents of /nix are, which are immutable. /bin isn’t even part of your path by default.

        • ivn@jlai.lu
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 day ago

          Well that was an approximation to keep it simple and disprove the given example. There are other directories in the root filesystem that are in the path by default, or used in some other critical way (like /etc). Even if they are links to directories in the nix store you can replace the link.

          • priapus
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            1 day ago

            I understand, but it didn’t really disprove anything. Immutable distro’s protect core components from being modified. /bin is hardly relevant on NixOS, so of course it wouldn’t be made immutable.

            /etc is also generally not considered a core component, and every immutable distro I’ve used left it writable. By default, every binary installed through NixOS is put in /run/current-system/sw/bin, which is immutable. Many other important files are also linked to /run/current-system, which is why the whole directory is immutable. It essentially takes the place of what the root directories would be on an FHS distro.

            I don’t know any other path used in critical ways that is not immutable. The primary paths that immutablility is relevant for in FHS distros are /usr, /lib, /lib64, and /bin. None of these paths are really used on NixOS, besides some files symlinked there for edge cases, like /bin/sh.

            If you were to remove all the symlinks you are able to, the system would still work for the most part. You would lose custom configurations in /etc, but that is true for most immutable distros. Most apps have a default configuration to fallback to.

            The misunderstanding comes from the fact that immutable is a poor description for any OS, which is why many now use atomic instead. Even in immutable distros, many files can still be modified, and things can still be broken if you try hard enough. Still, NixOS definitely falls under the general description of and immutable distro, as the core of the OS is immutable.