Skip to main content


This is a very good post. The approach that Lennart is describing here is very similar to the approach I've been working towards for months in #SpectrumOS. None of it is systemd-specific — we don't (currently) use systemd.

0pointer.net/blog/fitting-ever…

in reply to ALYSSA ALYSSA ANTIFASCISTA

This stuff is exactly the reason I didn't start building #SpectrumOS on top of an existing distro (even NixOS). Nobody is doing things the right way, and it's a lot easier to get right if you're designing that way from the start. Writing it all up like Lennart has done here is a really good first step, and I hope it helps distros overcome the stagnation they've been in.
in reply to ALYSSA ALYSSA ANTIFASCISTA

It's a bit sad that it's taken us this long to learn from what Chrome OS has been doing for years.
in reply to ALYSSA ALYSSA ANTIFASCISTA

osdev thoughts
I think a big lesson to learn from proprietary operating systems (and even BSD, although not to the same extent) is that there is value to separating the base system from user data ("data" in a very broad sense — I mean anything on the computer that isn't from the OS distribution, even config file changes). People who switch from Linux to macOS often talk about how they don't want to be their job to make their operating system work right.
in reply to ALYSSA ALYSSA ANTIFASCISTA

osdev thoughts
One of the big benefits of this is that if you have to tweak something to make it work (or at least work to your liking), that doesn't just get lost in your operating system somewhere and break when you update. You can see which bits came from you, and take them with you between installs/upgrades.
in reply to ALYSSA ALYSSA ANTIFASCISTA

osdev thoughts

This visibility into customisations, and the maintainability boost it brings, is a big part of the appeal of NixOS — it's what made using Linux tolerable for me.

BSD gets this mostly right too — you can just diff against the base system image. But I don't think there's a good solution there for e.g. config file changes for software from ports.

Immutable /usr seems like a way to finally get this on "mainstream" Linux. And because there is no base system, it works for packages.