It uses OCI images and ABRoot to provide
immutability and atomic updates. Iirc it’s similar to Fedora Silverblue
in that it’s an ‘immutable’ operating system, but Silverblue uses OST
which is a ’git for binaries (keeps track of metadata and I think GCs).
This is also used by flatpak.
Nix is a bit more general in that is allows
two packages to have different versions of a dependency by specifying
them be absolute path rather than hard linking like ABRoot/OSTree. NixOS
modules make it system configuration version controlled and
rollback-able, and you don’t have to deal with ‘configuration updates’
like e.g. Ubuntu prompt you with. The downside is that you need to write
your system config in this esoteric DSL.