NixOS
| 开发者 | NixOS 贡献者
NixOS 基金会 |
|---|---|
| 作業系統家族 | 类Unix |
| 源码模式 | 开放源代码 |
| 当前版本 | 26.05 / 2026年5月30日 |
| 软件包管理系统 | Nix |
| 支援平台 | i686, x86-64, AArch64 |
| 内核类别 | 宏内核(Linux) |
| 许可证 | |
| 官方網站 | nixos |
| 仓库 | github |
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 通过 Nix 语言写的中心化的配置文件进行管理。你在 Nix 表达式中声明了某个东西要怎么构建,Nix 包管理器会提供同样的环境来构建它。[13]
在修改 Nix 文件后,通过 nixos-rebuild 命令即可更新系统。这将完成创建新版本系统所需的一切操作,包括下载和安装软件包以及生成配置文件。
可复现性
[编辑]Nix 要保证输入和输出是对应的,因此相同的配置文件可以得到一个相同的系统。你可以很轻松地分享你的构建流程或者开发环境给别人,因为它们都声明在 Nix 文件中。
回滚机制
[编辑]NixOS 直接在启动菜单里提供了选项,可以选择启动到某一次特定部署,因此你可以把系统回滚到之前的状态。注意 NixOS 的这套机制不是真正的文件系统快照,无法回滚程序的数据文件。
编译缓存
[编辑]NixOS 使用的 Nix 语言指定了如何从源代码构建软件包。这使得系统能够轻松地适应用户需求。但是,从源代码构建是一个缓慢的过程,因此软件包管理器会在缓存服务器可用时自动下载预构建的二进制文件。
不遵守 FHS 标准
[编辑]NixOS 不遵守 FHS 标准,它的所有二进制程序和配置文件都在 /nix/store 里,并且 Nix 构建出来的文件应该是不可变的。因此,除非静态链接,否则为其它 Linux 下编译的二进制文件将完全无法在 NixOS 下运行。
参考链接
[编辑]- ^ Governance. Nixos.org. [2020-08-28]. (原始内容存档于2020-08-16).
- ^ Nix RFCS (Request for Comments). GitHub. 17 December 2021 [2024-11-02]. (原始内容存档于2024-04-30).
- ^ Release Announcements. Nixos.org. [2023-12-09]. (原始内容存档于2022-05-31).
- ^ 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).
- ^ Dolstra, Eelco. The Purely Functional Software Deployment Model (PDF) (学位论文). 2006. (原始内容 (PDF)存档于2019-06-09).
- ^ Hemel, Armijn. NixOS: the Nix based operating system (PDF) (学位论文). 2006 [2025-10-15].
- ^ Dolstra, Eelco. Purely Functional System Configuration Management. Usenix.org. [2024-03-04].
- ^ NixOS 13.10 released. NixOS. [15 October 2025].
- ^ Stichting NixOS Foundation. Nixos.org. [2015-09-19].
- ^ Governance. Nixos.org. [2020-08-28]. (原始内容存档于2020-08-16).
- ^ Nix RFCS (Request for Comments). GitHub. 17 December 2021.
- ^ Release Announcements. Nixos.org. [2023-12-09].
- ^ About NixOS. Nixos.org. [2015-09-19]. (原始内容存档于2020-04-30).
外部链接
[编辑]- Nix/NixOS 主页 (页面存档备份,存于互联网档案馆)
- NixOS 论坛 (页面存档备份,存于互联网档案馆)
- Nix Pills (页面存档备份,存于互联网档案馆)
- NixOS 官方手册 (页面存档备份,存于互联网档案馆)
- NixOS Wiki (页面存档备份,存于互联网档案馆)
- 社群
- (简体中文)NixOS 中文社区 (页面存档备份,存于互联网档案馆)