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 中文社區 (頁面存檔備份,存於互聯網檔案館)