跳至內容

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

外部連結

[編輯]
社群