I’ve published Profiles and Generations, the next free Part of LabCraft’s Nix course. It covers the operational layer on top of the store model: an install publishes a numbered, immutable generation and moves a symlink, so rollback is a symlink flip to an untouched snapshot — instant, offline, nothing re-downloaded — and wiping a profile’s history drops the generation links without freeing disk until a collection runs. The lab has learners predict what each change does before Nix shows them, on a real NixOS machine with no Nix language required. The post is here: Why is a Nix rollback just a symlink flip? — LabCraft Blog I’m building LabCraft and would welcome feedback from Nix users on whether this framing lands for newer learners.
Hi Anand.
Mad respect to you looking out for newbies. I am relatively new to Nix(OS) and confess that I didn’t read super deep. Not sure I’m really your target audience as I’m not at all new to Linux or hermetic/atomic/immutable build, link, & deploy strategies.
Anywho, what stood out to me most clearly was that the post glosses over a lot of implicit Unix (and arguably Nix) knowledge and relies entirely on prose to explain how nix profile generation atomics are structured.
The Nix manual covers a good bit of it and those with firm Unix foundations will find their way, but those who are newer to Unix/Linux in general might struggle.
Perhaps consider a few simple visual aids (simple block or ASCII tree diagram?) showing the structure of those symbolic link pointers and how they relate to the Unix search $PATH.
Just one opinion. Be well.
Hey Rich. Updated the course content based on your feedback, added diagrams for the symlink and PATH structure, and a short Bash prereqs section. Curious to hear your feedback on this, as well as the new part on GC Roots (what keeps a store path alive, and why GC doesn’t always free space).
Would love your take, if/when you get a chance.
Thanks