Declarative, reproducible Linux distribution where the entire system is defined in configuration files
NixOS is a Linux distribution built on the Nix package manager, where the entire system — packages, services, user environments, and configuration — is declared in a single set of Nix expression language files. Founded on research by Eelco Dolstra at Utrecht University and supported by the Stichting NixOS Foundation (KvK 63520583, Utrecht, Netherlands), NixOS enables atomic system upgrades, instant rollbacks to previous generations, and bitwise-reproducible builds. It is used as a desktop, server, and CI base by developers and DevOps teams worldwide.
Headquarters
Utrecht, Netherlands
Founded
2003
Pricing
EU Data Hosting
Yes
Employees
1-10
Open Source
Yes
Free
Contact Sales
Billing: free
Every Linux distribution installs software by modifying system state: packages are extracted into /usr, configuration files land in /etc, services are enabled via systemctl, and the result is an accumulated history of changes that is technically impossible to reproduce exactly on a second machine. Two systems that started identically diverge the moment an administrator applies a different sequence of updates, installs packages in a different order, or edits a config file that is not tracked by the package manager. This is called configuration drift, and it is the root cause of "works on my machine" failures, mysterious production regressions, and the dread that accompanies server migrations.
NixOS refuses this model entirely. The Nix package manager, originally developed by Eelco Dolstra as PhD research at Utrecht University (published 2006 as "The Purely Functional Software Deployment Model"), treats packages and configuration as immutable values in a functional system. Every package is identified by a cryptographic hash of all its inputs. No package can modify any other package's files. The system's entire state — every installed package, every service, every configuration value — is expressed in a set of Nix expression language files that are committed to version control and can be applied to any hardware to produce an identical system.
The Stichting NixOS Foundation (KvK 63520583, Utrecht, Netherlands) governs the project as a registered Dutch nonprofit. NixOS is not a commercial product. It is a technically radical reimagining of how operating systems should work, built by a global volunteer community and a handful of employed contributors, governed under EU law.
In NixOS, the system is defined in /etc/nixos/configuration.nix (or, with Flakes, in a flake.nix). This file describes which packages are installed, which services are running, what users exist, how the network is configured, which firewall rules apply, and what desktop environment is active. To add a package, you add a line to the file and run nixos-rebuild switch. To remove it, you delete the line. Nothing is installed outside of what the configuration declares.
This property has a profound practical implication: a NixOS configuration.nix file is a complete, portable description of a system. Clone it onto new hardware, run nixos-rebuild, and you have an identical machine — not approximately identical, but bitwise-reproducible in the packages and configuration. Teams managing multiple developer workstations, CI servers, or production hosts can use the same configuration file across all of them, eliminating configuration drift by construction.
Every time nixos-rebuild runs, NixOS creates a new "generation" — a complete, self-contained system state snapshot. The bootloader lists all available generations. If an update breaks something, rebooting and selecting the previous generation restores the exact previous system state. Not a backup restoration — the old generation is still on disk, fully intact, and can be booted in seconds.
This is categorically different from Timeshift or rsync-based backup systems, which create filesystem snapshots that may or may not match a bootable system state. NixOS generations are managed by the Nix store itself — the previous generation is a precisely defined set of package derivations and configurations that produced a working system.
Nix Flakes, now the standard way to define NixOS configurations, add a flake.lock file that pins every input — including the nixpkgs version and any external flake dependencies — to specific git commits. A Flakes-based NixOS configuration built six months from now will produce exactly the same system as it does today, assuming the same hardware. This is valuable for CI environments, air-gapped deployments, and any context where long-term reproducibility matters.
Home Manager extends Nix's declarative model to user environments. In addition to the system-level configuration.nix, a user can declare their dotfiles, shell configuration, editor plugins, and user-installed packages in a home.nix file managed by Nix. This makes user environments as reproducible as system configurations. A developer can commit their entire workstation environment — Neovim configuration, shell aliases, git settings, browser extensions — to version control and reconstruct it identically on any machine.
nix-shell (and the modern devShell in Flakes) provides project-local development environments that are active only inside a specific directory. Running nix develop in a project directory activates a shell with exactly the right versions of Node, Python, Rust, or any other toolchain — and removes them when you leave. No global version manager (nvm, pyenv, rbenv), no Docker overhead, no "this only works if you have version X installed globally." Every project carries its own precise dependency specification.
NixOS is free. The Stichting NixOS Foundation accepts donations from individuals and corporate sponsors to fund infrastructure and core contributor time. No paid tier exists. The full distribution, Nixpkgs repository (over 100,000 packages as of 2026), Nix Flakes, Home Manager, and documentation are freely available.
For organisations deploying NixOS in production, paid commercial support is available from ecosystem companies including Determinate Systems (US) and various European consultants. The foundation itself does not sell support contracts. Teams that want the reproducibility guarantees of NixOS with commercial backing can engage specialist Nix consultants — a growing market in European DevOps circles.
NixOS is governed by the Stichting NixOS Foundation, a registered Dutch nonprofit (KvK 63520583) in Utrecht, Netherlands. The Netherlands is a founding EU member with strong data protection enforcement via the Autoriteit Persoonsgegevens (Dutch Data Protection Authority). The foundation's Dutch registration provides a clear EU legal anchor for the project's governance and finances.
The operating system itself collects no telemetry. Installing and running NixOS sends no data to any NixOS infrastructure beyond the expected network calls to download packages from cache.nixos.org. Those requests include Nix store path hashes (cryptographic identifiers for package derivations) but no user-identifiable information. The binary cache infrastructure is operated by the foundation under Dutch law.
Nixpkgs, the primary package repository, is entirely open source (hosted on GitHub, mirrored). Every package derivation is auditable — the Nix expression that produces a binary is public, and the cryptographic hashing model means builds can be independently verified. For European organisations with software supply chain security requirements under the EU Cyber Resilience Act, NixOS's reproducible build architecture provides compliance tooling that traditional Linux distributions cannot match.
The 2024 governance controversy — a public dispute about the project's moderation team and code of conduct — is worth acknowledging. It resulted in some core contributors departing and forming a fork (Lix). The Stichting NixOS Foundation and the main NixOS project remain active, but organisations evaluating NixOS for long-term production use should research current governance status before committing.
NixOS rewards developers and DevOps engineers who are already comfortable with Linux and want to solve the reproducibility and configuration drift problems that accumulate in traditionally managed systems. The learning investment is substantial — plan for several weeks of adjustment before becoming productive with NixOS as a daily driver.
Infrastructure teams managing multiple identical server configurations benefit enormously from NixOS's model: a single configuration.nix applied consistently across a fleet eliminates the drift that accumulates with Ansible, Chef, or Puppet applied over time. Immutable infrastructure at the OS level is a significant operational simplification.
Security-focused users appreciate that NixOS's build model enables cryptographic verification of the software supply chain — every binary can be traced back to the source derivation that produced it.
If you are new to Linux or prefer a working system quickly with minimal configuration, choose Linux Mint or Manjaro instead. If you need an OS with extensive enterprise support contracts and certifications (RHEL, SUSE), NixOS is not the right choice. If you want reproducible declarative infrastructure and are willing to invest in learning Nix, NixOS is the technically superior solution.
NixOS makes a promise that no other mainstream Linux distribution can make: every aspect of your system — packages, services, configuration, users — is expressed in version-controlled code, atomically upgradeable, and instantly rollback-able. The Dutch nonprofit foundation provides EU legal grounding and transparent governance. The learning curve is genuinely steep and the Nix expression language takes time to internalise, but for developers and infrastructure teams who invest the time, NixOS eliminates entire categories of operational problems that other operating systems accept as unavoidable. It is the technically radical choice for people who find conventional operating system management philosophically unsatisfying.
Expect two to four weeks of adjustment to become productively comfortable, and several months before the Nix expression language and module system feel natural. The core concepts — derivations, the store, nixpkgs overlays, module options — require genuine study. The NixOS manual, the Zero to Nix guide, and the NixOS Discourse forums are the primary learning resources. Most people who stick with NixOS past the initial difficulty report that it transforms how they think about system configuration permanently.
These are four related but distinct things. Nix is the package manager and expression language — the foundation. Nixpkgs is the repository of over 100,000 package definitions written in the Nix language. NixOS is a Linux distribution that uses Nix to manage the entire operating system, not just packages. Home Manager is a separate community project that extends Nix's declarative model to manage user environments and dotfiles. You can use Nix on macOS or other Linux distributions without running NixOS; Home Manager can be used on any Nix-enabled system.
Yes, and many argue it is more compelling for servers than desktops. Server configurations — nginx, PostgreSQL, monitoring agents, firewall rules — are exactly the kind of repeatable, version-controlled infrastructure that NixOS's declarative model handles best. NixOps and deploy-rs extend the model to remote deployment. Production deployments of NixOS are common in European technology companies, particularly in the Netherlands, Germany, and Nordic countries where the Nix ecosystem has strong community roots.
In 2024, a dispute over the project's code of conduct enforcement and moderation team led to the resignation of several core contributors, including Eelco Dolstra (the original author of Nix), from active leadership roles. Some contributors forked the Nix package manager to create Lix, emphasising different governance priorities. The NixOS project and Stichting NixOS Foundation continue operating, and nixpkgs remains the primary package repository. The episode highlighted that volunteer-governed open-source projects face real governance challenges at scale. The community has been working on governance reforms since 2024.
NixOS itself (as an operating system) runs on x86-64 and aarch64 Linux, meaning it can run in a virtual machine on Apple Silicon but not natively on macOS. However, the Nix package manager runs natively on macOS (both Intel and Apple Silicon), and Home Manager works on macOS. Many developers use nix-darwin — a community project providing NixOS-style declarative configuration for macOS — to get the benefits of Nix's reproducibility on their Mac while running NixOS on servers or in CI. Determinate Systems' nix installer simplifies the macOS Nix setup significantly.
User-friendly, Ubuntu-based Linux distribution built for Windows migrants and everyday desktop use
User-friendly Arch-based Linux distribution for desktops and laptops
Enterprise Linux distribution with long-term support and compliance certifications
Alternative to Windows
The most popular Linux distribution for desktops, servers, and cloud