GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing en.wikipedia.org — NixOS - Wikipedia
NixOS is a Linux distribution built around the Nix package manager. Unlike traditional Linux distributions, NixOS is configured using Nix's functional programming language or one of Nix's forks. The operating system builds itself according to declarations written by the user within its config files, allowing them to manage and alter all aspects of their system, as well as install identical builds of that system on any other machine. From those files, NixOS generates complete system profiles, enabling reproducible deployments, atomic upgrades, and system rollbacks.[6] Representing the primary implementation of the Nix package manager,[7] NixOS is often just referred to eponymously as Nix. NixOS relies on the Nixpkgs collection of package definitions and the Nix expression language for declaring packages and system options.[8] It is free and open-source software under the MIT License.[5][note 2] HistoryNix as a package manager originated in 2003 as a research project by Eelco Dolstra at Utrecht University under the supervision of Eelco Visser. Dolstra’s 2006 doctoral thesis, The Purely Functional Software Deployment Model, describes a declarative and functional approach to software deployment and lays out the design of the Nix package manager.[9][10] The first NixOS prototype was created by Armijn Hemel in 2006 as part of his Master's thesis NixOS: The Nix Based Operating System, which explored applying Nix and its principles to a Linux distribution. Hemel demonstrated the application of package management, system services, kernel management, and other principles that defined NixOS.[11][12] After continued development, NixOS issued its first stable release, version 13.10, in 2013.[13] The NixOS Foundation, a Dutch non-profit established in 2015, supports the development and community infrastructure of NixOS and related Nix projects.[14] Release version history
Since 2021, NixOS publishes stable releases twice per year, near the ends of May and November.[15][16][17] Prior to the first stable release in 2013, major versions were numbered semantically, up to release 0.2.[18] In addition to the stable release, NixOS maintains a rolling, unstable release following the main development branch.[19] FeaturesDeclarative configuration modelIn NixOS, the entire operating system—including the kernel, applications, system packages, and configuration files—is built by the Nix Package manager from a definition in the Nix language. Building a new version will not overwrite previous versions.[20] A NixOS system is configured by specifying the desired state in a Nix expression file, typically { boot.loader.grub.device = "/dev/sda"; fileSystems."/".device = "/dev/sda1"; services.openssh.enable = true; } Changes may be built and activated with the Atomic upgrades and rollbacksConfigurations in Nix are evaluated as pure, declarative expressions. Given the same inputs (such as the Nixpkgs revision and configuration files), evaluation is deterministic and produces the same build plan each time, independent of the machine's prior state.[22] Upgrades and configuration changes to NixOS systems are applied transactionally. New system generations are activated atomically, so that previous generations are retained and may be rolled back. If an upgrade is interrupted (for example, by power failure), the system remains consistent and will boot either the old or the new configuration.[22][23] After an upgrade, the switch to the new generation can be postponed to the next boot or executed immediately, in which case any affected system services are restarted.[24] If, after a system update, the new configuration is undesirable, it may be rolled back by switching to a previous generation ( Reproducible system configurationsNixOS uses a declarative configuration model that allows system configurations to be reproduced on different machines. By sharing a configuration file with a target machine, users can generate an equivalent system, including the kernel, applications, and system services. Components not managed by the package manager, such as user data, are not affected by this process. Multi-user package managementIn addition to the system-wide profile, every normal user in a NixOS system has a profile in which they can install packages without special privileges. In the Nix store, multiple versions of a package may coexist, allowing different users to have alternate versions of the same package installed in their respective profiles, or share an identical version. Nix’s security model restricts what unprivileged users can influence. Prebuilt binaries may be fetched from binary caches that are explicitly trusted by the system configuration, otherwise packages are built locally in a sandbox. Without special privileges, users cannot pass options that would introduce impurities into builds or use untrusted caches. Nix-shellThe nix-shell command starts an interactive shell based on a Nix expression. It allows developers to work with isolated sets of dependencies without affecting the system globally.[26] Experimental featuresNix commandThe FlakesFlakes provide a standard structure for Nix expressions that explicitly declare dependencies and outputs. Each flake contains a flake.nix file that specifies its inputs (dependencies, external flakes, repositories) and outputs (packages, NixOS configurations, and development environments). Flakes use a lock file to keep exact versions of dependencies to ensure that evaluations remain reproducible over time. The feature provides a standardized way to define, manage, and share Nix expressions, while making it easier to create and maintain reproducible systems.[27] ImplementationThe Nix storeInstalled packages are stored in a read-only directory known as the Nix store, commonly located at An implication of these principles is that NixOS does not follow the Filesystem Hierarchy Standard. The only exceptions are that a /bin/sh symlink is created to the version of bash in the Nix store (e.g. This also means that AppImage executables cannot be run directly as they expect certain libraries to exist on certain paths.[28] This can be worked around by running them through an interpreter.[28] Nix maintains consistency between the running system and its logical specification by rebuilding packages as needed. When the kernel is modified, external kernel modules are automatically rebuilt. Similarly, updates to libraries trigger rebuilds of all system packages that depend on them, including those with static linking. Source-based model with binary cacheThe Nix build language used by NixOS specifies how to build all packages from source. This makes it easy to adapt the system to user needs and create new packages. To avoid long and intensive builds from source, the package manager automatically downloads pre-built binaries from a cache server known as a "substituter" when they are available. It is possible to disable substitutions and force building from source by passing ReceptionJesse Smith, reviewing NixOS 15.09 for DistroWatch Weekly in 2015,[30] wrote:
A 2022 review of NixOS 21.11 "Porcupine" in Full Circle concluded:
NixOS 22.11 "Raccoon" reviewed by Liam Proven at The Register:
NixOS 23.11 "Tapir" reviewed by Jesse Smith at DistroWatch:
CommunityWikiAn official NixOS wiki was launched in 2011, but was shut down in 2016 due to spam. An unofficial wiki at nixos.wiki was later started by the community to fill in the documentation gap.[34] On 1 April 2024, the official wiki was revived at wiki.nixos.org, using contents migrated from the unofficial nixos.wiki.[34][35] Adoption by French governmentFurther information: DINUM § Digital Sovereignty and Linux Migration
The French government's Interministerial Products Operator (OPI) department of DINUM (Interministerial Directorate for Digital Affairs) is developing Sécurix, a secure, reproducible operating system base built on NixOS.[36] This is part of a plan to require all French ministries to create a strategy by autumn 2026 to adopt non-American tech for PC operating systems, collaboration tools, antivirus software, artificial intelligence, databases, virtualization, and network equipment.[37][38][39] In 2026 the Dutch government also announced plans to make a hardened NixOS distro.[40] Community controversyAndurilThe American company Anduril Industries is a major user of NixOS; they created the NixOS Security Technical Implementation Guide, developed the now open-sourced jetpack-nixos module, and employ NixOS engineers.[41][42][43] In September 2023, it was announced that Anduril was joining as a sponsor of NixCon, an annual convention on NixOS. This sparked community controversy and Anduril was removed as a sponsor the following day.[44] In 2025, Tom Bereknyei – a member of the NixOS Steering Committee – began employment at Anduril, sparking new controversy around transparency, ethics, and conflicts of interest within NixOS governance.[45] Dolstra's leadershipIn April 2024, an open letter to the NixOS community was published, focusing on Eelco Dolstra's leadership.[46] The letter critiques Dolstra's continued partnership with Anduril, and argues the sponsorship is a symptom of a larger authority problem from Dolstra. The letter contains arguments and allegations on Dolstra's leadership: control over the community, discrimination against marginalized communities, and quality impacts on Nix's development.[46] The controversy resulted in Dolstra stepping down and an initiative towards community-based governance.[47][48] See also
Notes
References
External linksRetrieved from "https://en.wikipedia.org/w/index.php?title=NixOS&oldid=1383171633" Hidden categories:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||