跳至內容

NixOS

維基百科,自由的百科全書

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]. 

外部連結

社群