How does Silverblue compare to NixOS?

I discovered today the existence of Fedora Silverblue

Does anyone have experience or knowledge in it? How does it compare to NixOS?

1 Like

Some quotes from ycombinator:

Silverblue still uses a single namespace for all libraries (unless you count Flatpaks, which can bring their own dependencies), whereas on NixOS you can have many different versions of the same library in parallel.

In NixOS, the whole system is defined declaratively, including the system configuration, whereas Silverblue uses a mutable /etc.

In Silverblue, your /usr is really immutable, so when you install package, you are installing it into different tree than the one currently running. Reboot switches to that newly constructed tree.

From what I understand the flagship feature of silverblue is OSTree. (Read the Intro for a basic overview)

Hopefully, someone more knowledgeable on the topic will chime in :sweat_smile:

Previous discussion NixOS vs. Fedora Silverblue

1 Like

Heh, that quote looked familiar ;).

At a basic level, you could see Silverblue as a traditional distribution where the system is just a snapshot of a basic Fedora desktop. Updating a system means that you get a new snapshot of that system. From such an approach, you could get atomic updates and rollbacks, since an update just switches to a new system image. A rollback boots into an old system image. Of course, storing downloading/storing full snapshots would be inefficient, so instead OSTree uses a git-like content-addressable store, so that multiple snapshots can be stored efficiently and an update only results in downloading the delta between snapshots. Each checked out snapshot is immutable. To be able to install RPM packages, they are layered upon the snapshots of the base operating system.

As I mentioned in that comment, Silverblue looks like a traditional system otherwise. There is still a global package namespace. Packages are still defined using RPM spec files (a Silverblue snapshot is a composition of a bunch of packages). Since Silverblue is still very much a traditional system, but immutable, development is usually done in rootless containers that contain a traditional (mutable) Fedora installation and applications are installed as Flatpaks.

Due to their use of OSTree, Silverblue has some benefits that overlap with NixOS: atomic updates, rollbacks, and immutable system files. I think it is a nice system to get these benefits without the learning curve of Nix/NixOS. Of course, the downside is that you do not get all the other benefits of a purely functional package manager.

3 Likes

Is it far off-base to say that it brings the value system of the CoreOS model to an end-user desktop environment? They were also users of ostree IIRC.