Immutability & atomicity
Buzz words to help stop you breaking things!
When reading about next-generation distros, the terms immutable or immutability are spoken about a lot. Immutable means something that is unchanging over time. In the Linux world, it generally refers to the fact that the base operating system is set up in a read-only fashion, and that only updates from the distribution’s makers can update the operating system itself. Combining this technique with the use of sandboxed packages and containers leads to an OS that is as lean as possible and means that as few bugs as possible can affect processes running as root.
Multiple techniques are available to ensure immutability, including clever partitioning systems, which separate the basic operating system from its configuration, and Unionfs or similar systems being used to layer filesystem images on top of each other. For example, layering a writable image on top of the base OS, which contains /etc and other locations containing configuration, allows immutability.
Hand in hand with immutability is atomicity, the state of being composed of indivisible units. In Linux terms, atomicity refers to the fact that updates either take place or they don’t. Clever techniques ensure that failed updates or package installs are detected and rolled back, so our distros don’t end up broken.
Fedora
Fedora Silverblue, Kinoite and Onyx are immutable distributions providing Gnome, KDE or the Budgie desktop environments. All three use filesystem layers to install updates and new packages. The RPM-OSTree system is used to take a version-controlled filesystem image and install it to the hard drive. A reboot is required to make upgraded packages or newly installed software available. More information can be found at https://fedoraproject.org/silverblue.
Vanilla OS
Vanilla OS uses standard OCI images (Open Container Initiative) to provide updates to the operating system. The ABRoot utility is used to handle updates to the two root filesystems. The usage of OCI images ensures that the operating system is always in a consistent state. ABRoot also contains its own package manager, which generates OCI images containing the user’s changes, which can then be applied and enabled on a reboot. You can find out more information at https://vanillaos.org.
BlendOS
BlendOS is based on Arch Linux, which is a fascinating choice, given that Arch is known for being completely bleeding edge, rather than sitting on the safer side of things, like Debian. Immutability is provided using filesystem layers, which are transparently mounted on top of the root files, then on the next reboot, changes are merged into the root. Updates are provided using ISO files and overwrite the existing root files at the next reboot. Zsync is used to ensure that update file downloads are as small as possible. BlendOS can be downloaded from https://blendos.co.
Endless OS
Based on Debian, Endless OS utilises a read-only filesystem managed by OSTree, while Flatpaks are used to install apps, and the desktop is Gnome. Endless OS can be downloaded from www.endlessos.org.