Ubuntu Core Desktop is Canonical’s (currently unreleased) immutable and attestable Linux desktop. It represents the most fundamental shift in Ubuntu’s desktop architecture to date, and will mature into the default experience for Ubuntu Desktop over time.
...
With this transition comes the promise of greater resilience, better security, more composability, but also more engineering complexity. In this post I’ll outline the vision, roadmap, and some of the complexities we hope to tackle.
...
We want to build a modular desktop architecture that defines clear interfaces between components. Components such as the display manager, desktop environment, multimedia servers, networking and other core capabilities should adhere to well-defined interfaces and remain implementation agnostic.
The result will be a desktop whose constituent parts can evolve independently, without forcing the rebuild of the entire operating system image every time something changes - one of the key differentiators from other immutable operating system implementations.
Immutable systems are... challenging.
They're good at resilliance, reboot and "important stuff" gets restored to its state when locked.
(Some of) the problems are: how to draw the line between "important stuff" that should never change and "configuration parameters" that need to be periodically modified, and storage like log files that change all the time. Then, occasionally you need to open up the "immutable" partition and make changes there as well, and during those openings you are basically as, perhaps a bit more, vulnerable to attack as traditional systems.
The fact that Ubuntu has been working on this for so many years and it's still not ready for release tells you something...
I have developed a few systems on RaspberryPi where the immutability protects the immutable microSD filesystem from corruption when power is lost without graceful shutdown, which is pretty much every shutdown in real-world deployments...
/etc is usually writeable XD
Unless you are on NixOS where you need to use nix for EVERYTHING
And how much can you screw up with a "sudo rm -rf /etc" ?
If ALL the software on the system was mine, that would be a reset to defaults, where the executable would re-write what it needs to default values instead of just failing to start.
Of course the whole reason for configurability is that defaults don't always work in all cases.