Login Page - Create Account

Support Board


Date/Time: Fri, 29 Mar 2024 13:05:59 +0000



Post From: Linux

[2022-11-29 18:20:33]
emmanuel - Posts: 25
You can think of NixOS as being the output of a pure (mathematical) function. Using a Haskell-like notation...

nixos :: Specification -> SoftwareRepository -> NixOS
nixos specification nixpkgs = ...

Since it's a pure function, a change to the inputs, either the specification or the software repository (Nixpkgs), would produce a different output, hence a different installation of NixOS.

This also means that if the inputs don't change, then the output doesn't change either. I could give you my specification and the Git commit of the Nixpkgs repository and you'd be able to recreate my NixOS system; The same Linux kernel, the same exact version of every application and library, the same configured services, users, etc. And it would all be installed along side the existing NixOS installation; NixOS installations never override each other. If something goes wrong, then simply reboot and select a different NixOS installation from the boot menu. This is extreme reproduceability and recoverability. I've been down the apt-get, pacman, emerge, etc, road, and they are NO match. There is no Linux distro (except perhaps Guix) which can match the reproduceability, and consequently the reliability, of NixOS; Although Redhat is trying :)