NixOS and the changing face of Linux operating systems – The Register

Analysis A new version of Linux distro NixOS has been released, just one day after a contentious blogpost that asked “Will Nix overtake Docker?”

For DevOps folk, this was tantamount to clickbait: Nix and Docker are different tools for different jobs, and anyway, it’s possible to use Nix to build Docker images.

The distro, which hit version 21.11 on the last day of November, was built around the purely functional Nix package manager.

Nix is one of several responses to the many complexities of Linux software packaging. Given the issues around dependencies, updates, and the many problems they can cause – which in some contexts is becoming a joke – some of the more alternative-minded Linux developers thought that the best way to tackle this would be to re-engineer how OSes are built and installed.

There are many such efforts, and functional package managers lie at one extreme. Nix is the most mature such tool, dating back to 2003; the conceptually similar GNU Guix is a decade younger. Nix uses its own definition language, while the GNU Project uses the Guile dialect of Scheme.

Both profoundly modify the traditional Unix directory hierarchy. Instead, they take a formal specification of a desired system state, written in a declarative, functional language, and then solve this automatically. The approach has a number of benefits: reliable, reproducible system builds; guaranteed consistency; atomic upgrades with rollback; the ability to have multiple versions of the same programs installed concurrently without clashing; and more.

But the side effect of this is too much for some techies to swallow: the resulting filesystem layout is no longer easily human-readable. Programs live in folders with names based on cryptographic hashes. There are other costs, too, such as slow build times, although there are binary-caching tools to help.

It’s not necessary to use either distro to get the benefits of the packaging system – both can run on other distros and indeed operating systems, including macOS.

The other extreme of this scale is GoboLinux. The same age as Nix, this experimental distro also completely discards the traditional Unix filesystem layout, but this time it’s replaced with a more human-readable directory tree with plain-English names.

The traditional Unix directory layout combines unrelated files according to their type, or the system roles for which they’re required, into a semi-standardised [PDF] tree. The result is large, complex, and somewhat cryptic – although there are efforts to simplify it – but millions of Unix users are familiar with it.

Gobo turns this layout on its head. Each …….

Source: https://www.theregister.com/2021/12/03/nixos_linux_os_design/