NixOS

Linux发行版

NixOS 是一个基于 Nix 的 Linux 发行版,由 Eelco Dolstra 和 Armijn Hemel 创建,最初于 2003 年发布。

NixOS
开发者NixOS 贡献者
NixOS 基金会
作业系统家族类Unix
源码模式开放源代码
当前版本24.05 / 2024年5月31日,​5个月前​(2024-May-31
软件包管理系统Nix
支援平台i686, x86-64, AArch64
内核类别宏内核Linux
许可证 编辑维基数据链接
官方网站nixos.org
仓库github.com/NixOS/nixpkgs

在 NixOS 中,系统的所有组件(包括内核、已安装的包和系统配置文件)都是由 Nix 从 Nix 表达式构建的。

稳定的 NixOS 版本每年发布两次(大约在 5 月底和 11 月底)。[1][2][3]

历史

2003 年,Eelco Dolstra 开始把 Nix 作为研究项目。[4][5] 他曾表示该项目的目的是创建一个能正确部署软件的系统。[6] 在 2006 年, Armijn Hemel 在乌得勒支大学提交了 NixOS 作为其硕士论文的成果。[7]

2011 年,NixOS 迁移项目到 Github。[8]

2015 年,NixOS 基金会在荷兰成立。[9]

2024 年,第一届 Nix 指导委员会选举被举办。[10]

历史版本

Name Date
NixOS 13.10 "Aardvark" 2013年10月
NixOS 14.04 "Baboon" 2014年4月
NixOS 14.12 "Caterpillar" 2014年12月
NixOS 15.09 "Dingo" 2015年9月
NixOS 16.03 "Emu" 2016年3月
NixOS 16.09 "Flounder" 2016年9月
NixOS 17.03 "Gorilla" 2017年3月
NixOS 17.09 "Hummingbird" 2017年9月
NixOS 18.03 "Impala" 2018年3月
NixOS 18.09 "Jellyfish" 2018年9月
NixOS 19.03 "Koi" 2019年3月
NixOS 19.09 "Loris" 2019年9月
NixOS 20.03 "Markhor" 2020年3月
NixOS 20.09 "Nightingale" 2020年9月
NixOS 21.05 "Okapi" 2021年5月
NixOS 21.11 "Porcupine" 2021年11月
NixOS 22.05 "Quokka" 2022年5月
NixOS 22.11 "Raccoon" 2022年11月
NixOS 23.05 "Stoat" 2023年5月
NixOS 23.11 "Tapir" 2023年11月
NixOS 24.05 "Uakari" 2024年5月
NixOS 24.11 "Vicuna" 2024年11月

特点

声明式配置

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

在修改 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. 
  3. ^ Release Announcements. Nixos.org. [2023-12-09]. 
  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. ^ Jonatha Lorimer. The Nix Thesis. 
  7. ^ Dolstra, Eelco. Purely Functional System Configuration Management. www.usenix.org. [2024-03-04]. 
  8. ^ Moving to GitHub. Nixos.org. [2011-09-28]. 
  9. ^ Stichting NixOS Foundation. Nixos.org. [2015-09-19]. 
  10. ^ Nix Steering Committee Election 2024. Nixos.org. [2024-09-16]. 
  11. ^ About NixOS. Nixos.org. [2015-09-19]. 

外部链接

社群