Skip to main content

NixOS

What is NixOS?

NixOS is a Linux distribution (operating systems, infrastructure platforms) built around the Nix package manager and a declarative, reproducible system configuration model.

  • Declarative system configuration using a single Nix expression for the entire Operating System (OS) (infrastructure as code).
  • Atomic upgrades and rollbacks for system packages and configuration (release and configuration management).
  • Reproducible build and deployment model using the Nix package manager (software supply chain and packaging).
  • Isolation of packages through a content-addressed store and dependency tracking (runtime environments and dependency management).
  • Support for server, desktop, and container-style deployments with consistent configuration semantics (hybrid infrastructure management).
Show more

More About NixOS

NixOS is a Linux distribution (operating systems, infrastructure platforms) that uses the Nix package manager as its core mechanism for system configuration, package management, and deployment. It addresses configuration drift, dependency conflicts, and environment reproducibility by expressing the entire OS configuration as declarative Nix expressions. This model covers system services, users, packages, and configuration files, which are all derived from a single or small set of configuration files.

The project’s central capability is its declarative configuration system (infrastructure as code). Administrators define the desired state of the system in configuration files written in the Nix language. From this specification, NixOS builds and activates a complete system generation, including the kernel, system services, and user-level software. The Nix store (dependency management) maintains packages and system components in immutable paths, with each build identified by a hash of its inputs. This design supports deterministic builds, co-existence of multiple versions of packages, and precise dependency tracking.

NixOS implements atomic upgrades and rollbacks (release and configuration management) through its generation mechanism. Each system rebuild produces a new bootable configuration generation. Switching between generations is a transactional operation, and previous generations remain available for rollback at boot time or from a running system. This approach is used both for system services and installed packages, reducing risk during upgrades and configuration changes.

For enterprise and institutional environments (IT operations and platform engineering), NixOS is used to manage fleets of servers, developer workstations, and build infrastructure with a uniform configuration model. The declarative configuration fits Continuous Integration and Continuous Deployment (CI/CD) pipelines and automated provisioning workflows, because environments can be recreated from version-controlled configuration files. NixOS integrates with virtualized and containerized environments (cloud and container infrastructure) by building minimal images and declarative system definitions suitable for cloud instances and container runtimes.

The Nix language and Nixpkgs collection (package ecosystem) provide a large set of software definitions that are used to construct NixOS systems (software distribution). The ecosystem is extensible, enabling organizations to define internal packages and modules that follow the same declarative and reproducible model. NixOS modules (configuration modules) encapsulate service and system options, allowing composition of reusable building blocks for common services such as networking, storage, and system daemons.

From a directory and taxonomy perspective, NixOS fits under Linux distributions, configuration management, and reproducible build systems. It combines an OS with a configuration and packaging model that emphasizes reproducibility, atomic upgrades, and declarative system management for servers, desktops, and cloud or container environments.