跳转到内容

NixOS

维基百科,自由的百科全书
NixOS
开发者NixOS 贡献者
NixOS 基金会
作業系統家族类Unix
源码模式开放源代码
当前版本26.05 / 2026年5月30日,​5個月前​(2026-05-30)
软件包管理系统Nix
支援平台i686, x86-64, AArch64
内核类别宏内核(Linux)
许可证 編輯維基數據鏈接
官方網站nixos.org
仓库github.com/NixOS/nixpkgs

NixOS是一個基於 Nix 的Linux發行版,由 Eelco Dolstra 與 Armijn Hemel 創建,最初於 2003 年發布。NixOS 採用聲明式配置模型,系統的所有組件(包括內核、已安裝的軟件包和系統配置文件)均由 Nix 從 Nix 表達式構建。系統支持原子化升級與回滾,用戶可透過 `nixos-rebuild switch` 命令應用配置變更,並在必要時恢復至先前狀態。NixOS 由社群開發與維護,目前由 NixOS 基金會管理。[1][2][3]

历史

[编辑]

作为包管理器的 Nix 起源于 2003 年,是乌得勒支大学的一项研究项目,由 Eelco Dolstra 在 Eelco Visser 的指导下开展。Dolstra 于 2006 年完成的博士论文介绍了一种声明式、函数式的软件部署方法,并阐述了 Nix 包管理器的设计。[4][5]

第一个 NixOS 原型由 Armijn Hemel 于 2006 年创建,是其硕士论文的一部分。该论文探讨了如何将 Nix 及其设计原则应用于 Linux发行版。Hemel 展示了软件包管理、系统服务、内核管理及其他构成 NixOS 的核心原则的实际应用。[6][7]经过持续开发,NixOS 于 2013 年发布了首个稳定版本 13.10。[8]

NixOS 基金会是一家于 2015 年成立的荷兰非营利组织,负责支持 NixOS 及相关 Nix 项目的开发和社区基础设施建设。[9]

版本历史

[编辑]
版本 代号 发布日期
停止支援: 13.10 Aardvark 2013年12月1日
停止支援: 14.04 Baboon 2014年5月30日
停止支援: 14.12 Caterpillar 2015年1月30日
停止支援: 15.09 Dingo 2015年10月30日
停止支援: 16.03 Emu 2016年5月1日
停止支援: 16.09 Flounder 2016年10月3日
停止支援: 17.03 Gorilla 2017年5月31日
停止支援: 17.09 Hummingbird 2017年10月2日
停止支援: 18.03 Impala 2018年4月4日
停止支援: 18.09 Jellyfish 2018年10月6日
停止支援: 19.03 Koi 2019年4月10日
停止支援: 19.09 Loris 2019年10月9日
停止支援: 20.03 Markhor 2020年4月20日
停止支援: 20.09 Nightingale 2020年10月27日
停止支援: 21.05 Okapi 2021年6月1日
停止支援: 21.11 Porcupine 2021年11月30日
停止支援: 22.05 Quokka 2022年5月30日
停止支援: 22.11 Raccoon 2022年12月1日
停止支援: 23.05 Stoat 2023年5月31日
停止支援: 23.11 Tapir 2023年11月29日
停止支援: 24.05 Uakari 2024年5月31日
停止支援: 24.11 Vicuña 2024年11月30日
停止支援: 25.05 Warbler 2025年5月23日
支援中: 25.11 Xantusia 2025年11月30日
最新版本: 26.05 Yarara 2026年5月30日
未來版本: 26.11 Zokor [有待確定]
格式:
停止支援
支援中
最新版本
最新預覽
從未發布

自2021年以来,NixOS每年发布两次稳定版本,分别在5月底和11月左右。[10][11][12]

特点

[编辑]
NixOS 图形化安装程序 (基于Calamares)

声明式配置

[编辑]

NixOS 通过 Nix 语言写的中心化的配置文件进行管理。你在 Nix 表达式中声明了某个东西要怎么构建,Nix 包管理器会提供同样的环境来构建它。[13]

在修改 Nix 文件后,通过 nixos-rebuild 命令即可更新系统。这将完成创建新版本系统所需的一切操作,包括下载和安装软件包以及生成配置文件。

可复现性

[编辑]

Nix 要保证输入和输出是对应的,因此相同的配置文件可以得到一个相同的系统。你可以很轻松地分享你的构建流程或者开发环境给别人,因为它们都声明在 Nix 文件中。

回滚机制

[编辑]

NixOS 直接在启动菜单里提供了选项,可以选择启动到某一次特定部署,因此你可以把系统回滚到之前的状态。注意 NixOS 的这套机制不是真正的文件系统快照,无法回滚程序的数据文件。

编译缓存

[编辑]

NixOS 使用的 Nix 语言指定了如何从源代码构建软件包。这使得系统能够轻松地适应用户需求。但是,从源代码构建是一个缓慢的过程,因此软件包管理器会在缓存服务器可用时自动下载预构建的二进制文件。

不遵守 FHS 标准

[编辑]

NixOS 不遵守 FHS 标准,它的所有二进制程序和配置文件都在 /nix/store 里,并且 Nix 构建出来的文件应该是不可变的。因此,除非静态链接,否则为其它 Linux 下编译的二进制文件将完全无法在 NixOS 下运行。

参考链接

[编辑]
  1. ^ Governance. Nixos.org. [2020-08-28]. (原始内容存档于2020-08-16). 
  2. ^ Nix RFCS (Request for Comments). GitHub. 17 December 2021 [2024-11-02]. (原始内容存档于2024-04-30). 
  3. ^ Release Announcements. Nixos.org. [2023-12-09]. (原始内容存档于2022-05-31). 
  4. ^ Dolstra, Eelco. Integrating Software Construction and Software Deployment (PDF). Software Configuration Management. Lecture Notes in Computer Science 2649. 2003: 102–117. ISBN 978-3-540-14036-8. doi:10.1007/3-540-39195-9_8. (原始内容 (PDF)存档于2019-04-21). 
  5. ^ Dolstra, Eelco. The Purely Functional Software Deployment Model (PDF) (学位论文). 2006. (原始内容 (PDF)存档于2019-06-09). 
  6. ^ Hemel, Armijn. NixOS: the Nix based operating system (PDF) (学位论文). 2006 [2025-10-15]. 
  7. ^ Dolstra, Eelco. Purely Functional System Configuration Management. Usenix.org. [2024-03-04]. 
  8. ^ NixOS 13.10 released. NixOS. [15 October 2025]. 
  9. ^ Stichting NixOS Foundation. Nixos.org. [2015-09-19]. 
  10. ^ Governance. Nixos.org. [2020-08-28]. (原始内容存档于2020-08-16). 
  11. ^ Nix RFCS (Request for Comments). GitHub. 17 December 2021. 
  12. ^ Release Announcements. Nixos.org. [2023-12-09]. 
  13. ^ About NixOS. Nixos.org. [2015-09-19]. (原始内容存档于2020-04-30). 

外部链接

[编辑]
社群