Vanilla OS, a fresh new Linux distribution, has released its first stable version. Unfortunately, the final result is not yet ready for real usage.
I was hesitant to write this piece. However, I was confused after reading a few articles about the brand-new Linux distribution Vanilla OS and comparing them to my personal experience with it.
In addition to applauding stories about yet another new and exciting thing on the Linux horizon, we, as authors, need to give readers a trustworthy and expert evaluation of what we write about. Here’s my opinion on the new kid on the block, Vanilla OS.
What’s Vanilla OS?
According to the official website:
Vanilla OS is an Ubuntu-based Linux point release distribution that gets updates at the right time, neither before nor after, without sacrificing security and functionality.
Vanilla OS is an immutable operating system, core parts of the system are locked down to prevent unwanted changes and corruption from third-party applications or a faulty update.
And, before you exclaim, “Wow, Ubuntu with a pure GNOME experience,” let me calm you down. You won’t be getting any Ubuntu experience here. Moreover, you will be disappointed if you expect to find any of Ubuntu’s inherent user-friendly tools.
Now, for the most crucial aspect of this new Linux distribution. Vanilla OS is attempting to carve out a space in the immutable operating systems world. But first, let me explain what it is to our readers shortly.
What’s Immutable OS?
An immutable operating system is one in which the base system is fixed and unchanging. In other words, the underlying file system is read-only and cannot be changed. The fundamental advantage of these operating systems is that they are more secure by nature because many attacks and exploits rely on writing or modifying files. So much for that.
How Does Vanilla OS Work?
Leading immutable Linux distributions, such as openSUSE MicroOS and Fedora Silverblue, provide this functionality using various sophisticated techniques. For example, we’re talking about using the features of the Btrfs file system or the rpm-ostree hybrid package system. Each of them creates a manageable amount of layers that provide the functionality to ensure that you can restore the operating system’s state at a certain point in time.
On the other hand, Vanilla OS ensures application isolation by running Ubuntu 22.10 as a Podman container in which apps are installed. In other words, an interesting but relatively superficial approach. To clarify, you will lose everything if something goes wrong with your container.
However, this is only true if you have something workable in that container. Because, as it turns out, installing an application and then hoping it works in this “stable” release is a bit optimistic. However, let’s try installing something trivial, like Firefox.
I’ll go over the software installation process in more detail below. Let us focus on the “firefox will appear in your applications list in a few seconds” message. You can wait as long as you like – seconds, minutes, or hours – but Firefox or any other application will never appear on the list. But let’s not be so pessimistic. Try running it through the Vanilla OS Control Center app as a final resort.
So far, with installing apps. Whatever you try to install using APX, the result will be similar.
But things get even worse when you install a command-line tool and then try to use it. You will discover that it does not exist in the system.
Vanilla OS also allows you to install software from Arch’s AUR repository. A dream come true! Until you discover that this is simply achieved by running another container, in this case, Arch Linux, in which the applications are installed.
And somewhere in there, I felt grateful to the developer for not going further to recollect with N number of openSUSE, Fedora, Void Linux, Slackware, etc., Podman containers to cover the entire range of package formats.
I’m trying to say that application isolation through containerization via Docker, Podman, LXC, or whatever container solution you’re using is at the heart of most of today’s IT. However, when it comes to containers. On the other hand, trying to fit one concept to achieve another is not always successful, as is the case with Vanilla OS.
In this case, we have an operating system that has been attempted to be transformed into a desktop application container orchestrator. Unfortunately, its implementation leaves a lot to be desired.
Nonetheless, this entire concept kept reminding me of something familiar. And all questions were answered when I found that the author of Vanilla OS is also the lead developer on the Bottles project. To be fair – great project!
But obviously, he just chose to expand the concept utilized there into something bigger: a complete operating system with claims of immutability. But, unfortunately, the opposite effect is achieved, leaving a somewhat bitter taste in the mouth.
The developer’s view on immutability is quite interesting here. In this case, the operating system is two identical copies of itself in two separate partitions. When successful file system changes are made, the ABRoot tool writes them to the OS copy. If something goes wrong, they are not written, and you can boot from the copy on the disk’s other partition.
While performing a major upgrade between versions, I’ve seen a similar approach with the GitHub Enterprise Server. Then it automatically creates a second partition that copies the current state of the underlying operating system as insurance if something goes wrong and allows you to boot from there. Of course, none of this has anything to do with immutability.
But now, back to Vanilla OS. What if I want to revert the OS state to, say, last Monday? Or to the 8th of August? Basic functionalities characterizing any immutable OS. Furthermore, having two identical copies of the operating system in two equal partitions would be fun if it weren’t for the minimum requirement of at least 50 GB of disk space to do the exercise.
On top of that, while using the ABRoot tool, similar “friendly” error messages abound.
The above command is not whole, but the existence of uncaught errors hitting the user in the face is hard to accept as anything that has been released as stable.
ABRoot & APX Utilities
As you may have seen, Vanilla OS provides software management to two tools, ABRoot and APX, specifically built for the purpose of the operating system. Unfortunately, there is nearly no technical documentation for their use. It is admirable that they at least describe what they do.
In Vanilla OS, the in-house built APX “package manager” is a wrapper for typical APT, DNF, etc. Using it to install anything in my tests always resulted in the application being unable to run.
ABRoot, as previously said, is a utility that provides “immutability” by copying data from one partition to another. Fortunately, because of it, you can use a standard APT command to install something workable in the underlying operating system.
sudo abroot exec apt install some_package_name
You will be warned that you are doing something dangerous that is only meant for advanced users. A simple APT command?
You’ll be even more surprised to realize that you must reboot the entire system to use the newly installed software. Why? Because it is installed in a mirror copy of the operating system initially. As a result, the distribution must be booted from the other partition to be available, as is the default functionality during a reboot.
Somewhere around here, I gave up on further attempts and invested time and effort into Vanilla OS.
Vanilla OS 22.10, based on Ubuntu 22.10 (Kinetic Kudu), is the first version of this new Linux distribution to be given the “stable” label. The trouble is that there’s nothing stable about it, and the entire experience is filled with issues and features that perform differently than expected.
In this case, you get neither Ubuntu nor an immutable operating system. Instead, you have two identical copies of a standard Linux distribution running Podman containers. In other words, comparisons to enterprise-ready OSs such as openSUSE MicroOS and Fedora Silverblue are inappropriate.
It is a lot of fun to use a script to copy data from one partition to another and install software on-the-fly into a Podman container. Still, it has nothing to do with the concept of an immutable operating system and the approaches to achieving it.
But I can still say something positive about Vanilla OS – its installer. Unlike the widely used Calamares, the developer here has spent a lot of time building its own, entirely based on GTK 4, which I thoroughly enjoyed.
Vanilla OS is a good idea; however, its implementation is weak. Of course, the developer’s commitment to the project can only be encouraged and admired. Professionally, though, Vanilla OS is more of a proof-of-concept or homebrew for leisure time enjoyment than a real-world usable operating system.
So it is hard to recommend it for actual use. Or at least at the moment. However, if you decide to give it a shot, feel warned.