Hacker News new | past | comments | ask | show | jobs | submit login
Vanilla Handbook (vanillaos.org)
72 points by doener on March 14, 2023 | hide | past | favorite | 35 comments



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.


For the benefit of anyone else who did this too:

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.


Wait... Didn't they just switch from Ubuntu to Debian?

EDIT: https://www.omglinux.com/vanilla-os-switch-to-debian/


I wish much more in my life would be at the right time, neither before nor after.


"A wizard is never late, Frodo. Nor is he early. He arrives exactly when VanillaOS means him to."

-- Gandalf the Grey


Everything already is. It’s a perspective.


It also has an almost absurdly calming and friendly visual brand. Arguably, that has nothing to do with the product but ... it also kinda does.

I'm a Silverblue guy right now, and that has largely cured me of distro hopping, but NixOS and Vanilla continue to tempt.


It is so frustrating when there is nothing at the top that forwards to the main page,e.g., a project name or logo.

I managed it by clicking on the How to Install guide and then on the download image link.



Since it is such a common need, maybe there should be a browser button for it instead of requiring every page to code their own?


With vimium you hi gU to go to the root of the page. Availlable for FireFox and Chromium based browsers. Content user.

https://github.com/philc/vimium


The return of the home button. :)


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.



The funny thing is even if you use the provided search funcion to ask that question nothing will come up.

On a side note half the time I don't even understand what the project is. The descriptions are often buzzwords sandwiched in untethered abstractions.


hey - you figured it out!


Can someone ELI5 what exactly is immutable in an OS?

Are all applications run as sandboxed containers or something?

If so, do they natively support switching between multiple versions of, say python?

In-line Edit: if they do, awesome, how about drivers and say CUDA?

More importantly, does it break the usual install scripts of packages and require special handling OR do things just work?


> 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.


Okay, that’s cool af.


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.


Universal Blue offers images with Nvidia drivers based on Fedora:

https://ublue.it/images/

edit: did not see that sibling pointed them out allready


From their homepage:

> 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.


If you get some new hardware that doesn't quite work, are you able to do anything with the OS to get it working?


Vanilla OS gives these instructions for installing drivers:

https://handbook.vanillaos.org/2022/12/10/install-additional...

From what I understand, the Linux kernel version is tied to the Vanilla OS release and can't be changed outside of upgrading or downgrading the OS.



What’s the update frequency look like with Silverblue and Vanilla say compared to a rolling distro like Arch?


So this is Ubuntu's response to Fedora Silverblue then, but without ostree according to the FAQ.

I love that this trend is catching on because I'm a fairly recent convert to Silverblue and I think all distros should do this.


Actually from what I've read the other day (I had no prior knowledge of VanillaOS) they are switching base to Debian Sid: https://www.phoronix.com/news/Vanilla-OS-2.0-Debian


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].

[1]. https://github.com/Vanilla-OS/handbook


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.


In case you wonder, Vanilla OS is a Linux distribution.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: