Fedora Atomic Desktops
If you're not familiar, the Atomic project is really interesting. Its focus is stability and reproducibility, trying to solve the fragility that can happen when the default way to use software in Linux is `sudo apt-get install`.
There's a community offshoot called Universal Blue (after the original Atomic image Silverblue). It uses the standards set for containerization to make userland configuration reproducible as well. There's a manifest (Containerfile) that enumerates all the modifications, which means an upgrade is bump the version of the base image and replay all the modifications from the manifest. It's also meant to limit `sudo` usage, so you're not in the habit of giving root to random software you downloaded from the internet.
Their most famous image is Bazzite, which will replicate the SteamOS experience on generic hardware. They also have Bluefin for software developers.
I haven't used it myself, but I find the concept fascinating. I expect Jorge and Kyle from that project will find their way to these comments.
Ugh, the Sway/Kinoite Atomic spin is so tempting for me as a regular Fedora user. Two weeks ago, a kernel update borked my laptop, and for some reason it deleted the older versions, so I was forced to live boot, chroot, and install a beta kernel. A few days ago, my desktop stopped booting - something to do with Nvidia drivers, and older kernels don't help. I don't have the time to try and fix it any time soon.
But, there was definitely pains with this kind of desktop when I tried it last time. Regular old software I want to install via dnf is painful to install - you have to layer it on top of the base image, and then that makes it "nonstandard" basically from then on. I know they push you toward flatpaks, but the vast majority of apps I use don't have it (or I don't prefer using the Flatpak version).
Can anyone give a more recent perspective? It's been about two years - I probably used Fedora Atomic 35/36.
I really like Silverblue and run it on a couple of secondary machines (like in my workshop), but it’s still rough for anything off the beaten path.
The largest pain points for me:
- Any kernel modules. I know Ublue has images but I wish Red Hat would just have an official solution that doesn’t require hacky RPMs and such.
- Kernel cmdline args or any initramfs changes: can’t package in image and need to be applied manually. Maybe it’s possible to build a custom initramfs to distribute?
- Secure boot and enrolling moks is very annoying. My current workstation just uses sbctl to sign a UKI against custom keys and everything “just works”. This is part of why kernel modules are a pain in Silverblue too.
If you don’t care about kernel modules with secure boot it’s quite nice though. Practically zero maintenance.
I just got into Silverblue (also love Nix), and I really feel that it's the way Linux "should be". I say this as a Linux user since 1999. If you haven't checked it out, imagine that the base (read-only) operating system (drivers, etc) changes in a very controlled and atomic fashion while all your userland stuff is updated via Flatpak (or Distrobox, etc). The odds of breaking your system are virtually zero, and everything works out of the box. It's amazing.
I know that Silverblue and Kinoite are more established, but I would have liked to see a consistent rebrand. "Fedora GNOME Atomic" is a better name for the same reasons that "Fedora Sway Atomic" is.
I knew what Silverblue was and was decently certain about Kinoite, but had heard about neither Onyx nor Sericea. I think the rebranding is a smart move here for both brand recognition and searchability. I might have gone a step further and renamed the Gnome and KDE versions as well.
Beyond the naming change, I'm really excited about those projects. I strongly belive that atomicity is the way to go and believe that eventually many distributions will evolve in that direction. Right now I think the tradeoffs are already worth it, but there may be a ways to go before I'd recommend it as the default for new users. (Even if they might in particular profit from easy error recovery.)
EDIT: I want to add that the easy error recoverability that atomicity provides isn't just important for errors upstream that break one of your upgrades, it also enables much more experimentation. I have learned a lot more Linux systems because I was able to fearlessly tinker with many integral parts that I would never have touched in a traditional system for fear of having to reinstall. After all, if I broke it, all I had to to was to reboot to unbreak it!
I never tried Fedora before, but a few weeks ago Bluefin got mentioned here and I went down a hole reading about Universal Blue and ended up making my own spin. Love it. Immutable is incredible
I use Fedora KDE as my laptop distro and have been interested in Silverblue/immutable versions. However I am not a developer so I’m not sure if it would offer any real benefit to my use case. Mostly use my laptop for web browsing and file transfers to my NAS.
I’ve seen people say that immutable is the future of Linux, can someone explain that if they can?
Does that mean one day all versions of Fedora will be immutable? Is it a security benefit?
Why not have single generic "Atomic" version and provide desktop environment as selection during installation? Like Debian does. Or is DE so tightly coupled into images, that it cannot be replaced?
Good, they changed the name of Sericea just as I learned how to spell it. :D
I started using Silverblue in October 2022 and now I've been using Sericea for the past 2 months.
Long story short, immutable is the future of Linux.
So can anyone help me understand why RedHat/Fedora has a containerized solution for desktop apps (flatpak), but nothing like that for CLI apps? It seems... odd.
If anyone isnt aware, Fedora is currently the GOAT OS. Don't knock it until you try it. Everything just works, and it works like the Platonic form of a desktop should.
A Fedora Cinnamon Atomic would be a wet dream for me. I'm surprised that wasnt prioritized. Budgie Desktop looks interesting.
Questions for Silverblue / Atomic Users:
I tried Silverblue a couple years ago and found myself rpm-ostree layering some basic tools like Fish shell and Mosh. Is layering still the preferred method for installing these types of tools or do you have "generic" container (made with toolbox/distrobox) that you jump into for generic shell work in like ssh'ing around and file management?
Also, how do you handle things like custom services? For example, Nebula overlay network doesn't really have an installer. Its just a single binary. I manually put that in /usr/local/bin, put the configs in /etc/nebula, chmod those configs to hide them, update selinux, and create a service file for it. How would I do that in an immutable system?
Don't use immutable distros on machines you might need for bootable disc or bootable thumb-drive use in the future. Found that out the hard way.
I'm using Silverblue for 2 years now it is very nice to consume things, but it gets tedious when you want to some development, so I really just use it to play Steam games (flatpak), watch videos and browse the internet.
never had any issues so far for those use cases
its definitely something I'd install for my parents
I like the idea of atomic base systems; it's very BSD-like. I may have to give this a try.
WTF is a "spin"
[dead]