No changes allowed!
Matt Holder explores immutable operating systems, containerised apps and containers to see if they describe the future of the Linux distro.
Having worked in IT departments in schools for over 10 years, painful memories exist of the agony felt by staff and students alike over the time it took to perform operating system updates. This was made many, many times worse when people began using Chromebooks, where updates were carried out seamlessly in the background and all that was required to access the new version was a reboot of the device. This is one technology used by a more modern OS, where two partitions are used to store the current OS and the upgrade, and if anything fails, the boot can revert to the older version.
In this feature, we are going to introduce Fedora Silverblue (which uses the Gnome desktop environment), which is an operating system that uses very different techniques from those you are most likely familiar with to create an operating system. Other examples of this sort of operating system are Fedora Kinoite (using the KDE desktop environment), NixOS, which allows ultimate customisation by installing only what is configured, OpenSUSE’s MicroOS, Endless OS, Ubuntu Core and Chrome OS Flex.
The first idea that we will introduce is that of immutable root partitions. What this means is that a set of files is distributed by the project and this is a rock-solid base for the operating system. Immutability also refers to the fact that parts of the filesystem are configured as read-only, with the idea being that only the operating system’s developers can initiate updates to files by releasing new upgrades. Using this technique, the operating system’s footprint can be relatively small, with extra apps added using various techniques, which we discuss later. Updates to the operating system are carried out by using atomic operations, which means that they are either successful or not. In this manner, it is incredibly unlikely that updates fail and the operating system be left in an undefined state. Fedora Silverblue and Kinoite use OSTree, which can be considered a version control system for the files required to make up the OS.