Fedora Silverblue Review
It was time for my 3 yearly laptop upgrade through work, and we are fortunate enough to be able to pick and chose our own laptop and OS, so it was a good time to try out Fedora Silverblue as my daily OS.
I am a long time Linux user, and although I tend to stick to Ubuntu and its derivates, Silverblue seemed like the perfect mix of bleeding edge and stability thanks to its unique layered design.
For those not familiar with Silverblue, its main attraction is the fact that the base OS is an immutable layer updated as an atomic unit and tracked by a git-like filesystem that allows changes to be rolled back. It is even possible to swap the base layer, allowing users to switch from the default Gnome layer to one based on KDE at will.
The nice thing about having an immutable base layer is that the update you get from Fedora is exactly the same as the updates the devs test with and that everyone else gets. This is a subtle but significant difference from the experience you get with traditional Linux OSs where the selection of packages you have installed is likely to be reasonably unique. That uniqueness is a source of many problems you’ll encounter as a Linux user.
Silverblue does allow you to add your own packages to the base layer. For the most part you simply install the packages via ostree-rpm (which you can use as a replacement for yum). You do need to restart in order for the changes to be applied thanks to the fact that custom packages are layered over the base layer, and such changes only take effect after a reboot. But, as with the base layer, you do have the option to rewind changes made in the package layer, providing a quick and reliable option for reverting bad updates.
Silverblue does have some significant drawbacks. The most glaring is the fact that it does not support DKMS, which means most third party drivers don’t work. I had an external Displaylink hub that I couldn’t use, and had to do some tedious workarounds to load my XBox dongle. More common drivers, such as Nvidia GPU drivers, do work as expected though. However, if you rely on drivers outside the kernel, Silverblue may not be a good choice.
Silverblue also pushes you down the path of using Podman instead of Docker. Podman is a great technology, and arguably implements a better archicture, but it is not a drop-in replacement for Docker. Any code using frameworks like TestContainers will need to be modified to work with Podman, and you’ll have to jump through some hoops to work with Docker Compose files. This is not unique to Silverblue, as all RedHat OSs preference Podman, but it is something to keep in mind.
But, for the most part, Silverblue worked like you would expect any modern Linux OS to work. I loved the fact that I got access to bleeding edge packages while knowing that the OS I was using was exactly the same OS every other Silverblue user was using, as this meant most issues would be discovered and resolved before I experienced them.
Unfortunately I found myself reverting back to Ubuntu due to the fact that some corporate security software I was required to use only supported Ubuntu. This was a shame, but if anyone is curious about Silverblue, I’d say (issues with DKMS drivers aside) there is no reason not to try it.