• 1 Post
  • 9 Comments
Joined 1 year ago
cake
Cake day: October 16th, 2023

help-circle




  • It all began with Nix software build system and package manager; they needee a way to build, compile software in a reproducible way. That is, if it builds on my machine, it should build on yours too given some constraints. Then they build a whole package repository for such sofware or package definitions, Nixpkgs, that can be build or retrieved using Nix package manager. Nixpkgs grew to be a repository for enabling runnig an GNU Linux OS on it: NixOS. It is declarative in the sense you write what it should contain like packages and behaves like system services. For example, see https://git.sr.ht/~misterio/nix-config.

    Atomic in the sense that when you want to change system’s configuration or state, everything should suceed in that update, otherwise fails; it is everything or nothing. This enables storing previous and current system revisions, so can rollback to previous state.

    Nix plus things like flakes, nix shell, enables a build inviroment akin to containers, but much better, correct, and flexible.

    Haskell is just an ecossytem Nixpkgs support.