← all field notes
field note · 004

The immutable truth

02 JUL 2026 6 min read linuxessay aurora-guides

I’ve used various PC operating systems over the years — DOS, Windows, macOS, BSD and Linux to name a few — and they’re all great in one way or another.

I am particularly impressed with Apple. Steve was passionate about the small details, and that passion translated into well-formed, approachable products. My first Apple product was an iPhone — I bought the first gen not long after it came out — and like many Apple products it was a slippery slope, and I’ve bought dozens more Apple devices since.

In fact, I regret not getting into Apple sooner; I wish I’d had a colourful iMac back in the day — I think they’re some of the best-looking computers ever built and they look fun to use. Mac OS also looks extremely fun and I think I’d have had a lot of enjoyment using it, but many of my early PCs were hand-me-downs and I couldn’t have afforded a Mac back then. I’m grateful for my IBM PC clones though, and had a lot of fun using those as well, mostly using Linux.

# One line of text

My first introduction to Linux was a Walnut Creek copy of Slackware. It was in the late 1990s and a friend and I were both keen to install it to see what all the fuss was about. We were at his house, and we installed it on his PC, and like many a mistake learnt and never repeated, I somehow erased his Windows partition in the process — to be fair, it was my first time using fdisk, and it was somewhat trial and error.

Rather disappointingly we were greeted with a shell login — a simple one line of text prompting us for a username — and I wasn’t quite sure what all the fuss was about; I was young and naive, and it was only a few years later I grew to appreciate the full power under the hood.

It isn’t all about fancy graphical interfaces. Linux now powers a good share of the internet and around seven in ten of the world’s smartphones.

I moved onto Red Hat and then found a home with Gentoo. I wasn’t a fan of RPMs, and trying to install packages with differing dependencies was awkward and time consuming. Gentoo provided an easy side-step — compiling everything from source meant I could pick and choose which features I wanted, and I was no longer bound by whatever options and dependencies had been dictated upstream. I used Gentoo for a number of years and there wasn’t any problem I felt I couldn’t solve — it taught me an awful lot about Linux as a whole and I’m glad I found it when I did.

But then I bought the aforementioned iPhone, and it wasn’t long before I had a Mac. I felt it was the best of both worlds — it was a Unix derivative like Linux but had more commercial software support; I could use a terminal and run Microsoft Office without hacks or emulation.

# The immutable part

The other thing the Mac had was an immutable file system. As much as I loved Gentoo, compiling from source could often break things, and whilst it gave me a good grounding at the time, I wanted something more reliable. An immutable file system provides exactly this sort of reliability, because it uncouples system and user data. The user’s files exist separately and the hardware can run on top of a known, reliable software stack. It’s the reason smartphones, Chromebooks (which also use Gentoo!) and many other devices go that route too.

My favourite immutable Linux distribution is Aurora. It’s part of the Universal Blue line of operating systems, including Bluefin and Bazzite — they consider themselves “cloud native” and have fully embraced a new way of thinking about and distributing Linux. In an approach similar to Docker, the OS is made up of various layers. Anyone can take any of Universal Blue’s images and build on top of that themselves. It’s a bit like NixOS in the sense the operating system can be rebuilt at whim, but rather than an exotic scripting language, uBlue images are carefully configured layers. When new versions of packages are released they’re pulled in, and the relevant layers are updated and configured. These run in integration pipelines providing some resilience and testing — the whole operating system is treated more like a software stack. It’s a novel and interesting approach.

Aurora is developer-focussed and comes pre-installed with almost all the tooling one needs to hit the ground running. It feels like someone else is managing my system day-to-day and I can focus on writing code. Assuming there was some shift in the landscape, I can feel confident Aurora would handle that upstream, and I don’t need to concern myself with whatever the latest lay of the land is.

Living on an atomic system does have its gotchas, mind — the little papercuts that don’t have an obvious answer when you can’t just reach for the package manager. I’ve started writing the fixes down as I hit them, so the next person (usually future me) doesn’t lose an afternoon to the same one twice.

setup guides for immutable Fedoraaurora-guides↗ open on gitlab

I enjoy using all sorts of devices and operating systems, but for Linux, Aurora is definitely worth a look.

· · ·