Skip to main content
NixOS logo

NixOS

Share

OS type: Linux


Netherlands


NixOS catalogue screenshot
Catalogue screenshot; the current release may look different.
Download NixOS

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.