

Opens the download page on distrib.wiki.
English edition published on .
NixOS is a Linux distribution distinguished by package management and system configuration built around Nix. Its approach differs substantially from conventional distributions, emphasising explicit configuration and reproducibility. This profile introduces Nix, the main advantages of the model and its distinctive features.
Understanding NixOS
NixOS uses the Nix package manager and a declarative system configuration: configuration files describe the intended state rather than relying only on a sequence of independent administration commands. A configuration may be organised into several files and modules, rather than literally one file for every aspect of the computer.
Advantages of NixOS
The model offers several useful differences from conventional Linux administration.
Atomic system generations
System rebuilds prepare a new generation rather than overwriting packages in place one by one. This reduces the risk of a failed package operation leaving a partially replaced system. Atomic activation does not guarantee that every service configuration or application will work correctly.
Rollback
Previous system generations can be selected if a change causes problems. This makes returning to an earlier system configuration easier, while remaining distinct from restoring personal files or application databases from a backup.
Reproducible development environments
Nix can describe development dependencies so that colleagues can recreate a consistent environment. Explicit dependency definitions help reduce differences between workstations and the familiar “it works on my machine” problem.
Distinctive NixOS features
Beyond these advantages, several configuration features contribute to its flexibility.
Declarative system configuration
Packages, services and user accounts can be described in configuration files. Keeping these definitions together and under version control makes changes easier to review and reproduce. Mutable application data and external services still need their own management.
User environments
Users can maintain separate package environments, including different package versions, without replacing the global system’s package set. This separation helps accommodate different development or application requirements.
NixOS is of particular interest to administrators who want explicit system definitions and developers sharing consistent working environments. Its unusual model requires learning Nix-specific concepts, but offers substantial control over package selection and configuration.