I wanted to see what exactly is this project. There is no way to go back to vanillaos.org from handbook.vanillaos.org without manually editing the URL bar, at least on mobile. This is so frustrating.
Vanilla OS is an immutable and atomic Ubuntu Linux-based Point Release distribution, that receives updates at the right time, neither before nor after, without sacrificing security and functionality.
Yeah, this is a common problem I run into with blog.whatever, forum.whatever, or wiki.whatever pages. They never bother customizing Wordpress, MediaWiki, etc so that you can navigate to the main site. Fer chrissakes, the Web was more usable in 1998.
> Can someone ELI5 what exactly is immutable in an OS?
I'll do my best. An immutable OS has a set of core features which are updated with a way to roll-back if the update fails. The idea is that the core doesn't generally get touched by users or even the administrators. All user or server software will be installed in some sort of container.
> Are all applications run as sandboxed containers or something?
Yes, for some definition of container. For example, Fedora Silverblue uses podman to install OCI containers for server work, toolbx (a wrapper around podman) to setup CLI tools with access to the home dir, and use flatpak for GUI applications.
> If so, do they natively support switching between multiple versions of, say python?
My understanding is that you can write your own bash aliases to do that.
> In-line Edit: if they do, awesome, how about drivers and say CUDA?
Typically your drivers are going to be managed by the "core" of the OS so you won't be swapping those out.
> More importantly, does it break the usual install scripts of packages and require special handling OR do things just work?
My understand is this depends on how you set things up.
- If you add something to the immutable core, it will come from a package manager.
- If you install a cli application in a container it will not update itself.
- Flatpak will provide updates.
- full on containers such as podman/docker do their own thing.
What's interesting about your question is that (and I'm saying this as a Silverblue user) it's a great question, and I'm fascinated by the incredibly successful projects that don't even bother trying to answer it: macOS and chrome OS.
Substantively, it's a difficult question to answer because there are multiple ways of accomplishing it, if I understand Vanilla correctly. In Silverblue and, I believe, macos, the operating system is a read-only image (probably ChromeOS too, but I don't know that): changing the operating system means dropping a new image on your drive, without messing with the bits that are mutable (/home and /var, in the case of Silverblue. You can layer applications directly on the OS layer in Silverblue, but it's not ideal -- though it's leading to some fascinating projects like ublue (https://ublue.it/), in which you can branch an OS image at github, customize it to your liking, and use github features to continuously update your image so that you have a custom but immutable, auto-updating operating system.
My understanding is that the core apps and functionalities are immutable, but you can install apps on top of that rock solid core. In theory, I don't think containerization is necessary to have an immutable OS.
Silverblue prefers you would use flatpak and containers for apps on top, but it does support “layering” regular packages on top of the immutable core system.
> Vanilla OS is an immutable and atomic Ubuntu Linux-based Point Release distribution, that receives updates at the right time, neither before nor after, without sacrificing security and functionality.
I have no clue what any of that means. And why should I care?
- Immutable: The OS is designed so that critical portions cannot be modified by the user, except when upgrading, downgrading, or removing the OS. Other immutable OSes such as Fedora Silverblue, Chrome OS, macOS, Android, and iOS also use this approach to improve their reliability.
- Atomic: Upgrades and downgrades to the OS are performed as whole releases that contain all package changes, instead of individual upgrades to packages. The OS is not designed for the user to accept only part of an OS upgrade. Userspace software is handled separately.
- Receives updates at the right time: The OS is not a bleeding-edge distro that adopts new software before it is stable enough for mass consumption. The OS is also not a stability-oriented distro that hangs on to old LTS versions of software as long as it can.
Vanilla OS seems to be targeting users who want a low-maintenance Linux distro that uses Flatpak, Snap, or AppImage for userspace software. If this is something you're into, then you should be interested.
IIRC the reason I most recently chose Ubuntu again instead of switching to Debian on one of my laptops is that it would more likely have all of the hardware covered easily. I wonder if Vanilla plans to move over Ubuntu's selection of drivers.
Apart from navigation-to-root issue, and non-functioning search, this documentation site looks pretty nice. Seems like they're using Jekyll to build it, and the source on Github[1].
I think Vanilla is really cool, but as someone who has just started to look into OSTree, I wonder why they went with ABRoot. Simplicity? Having 2 partitions requires very slight boot process modification, using OSTree requires some small modifications.