NixOS
NixOS 是一個基於 Nix 的 Linux 發行版,由 Eelco Dolstra 和 Armijn Hemel 創建,最初於 2003 年發布。
開發者 | NixOS 貢獻者
NixOS 基金會 |
---|---|
作業系統家族 | 類Unix |
源碼模式 | 開放原始碼 |
當前版本 | 24.05 / 2024年5月31日 |
軟體包管理系統 | Nix |
支援平台 | i686, x86-64, AArch64 |
內核類別 | 宏內核(Linux) |
許可證 | |
官方網站 | nixos |
倉庫 | github |
在 NixOS 中,系統的所有組件(包括內核、已安裝的包和系統配置文件)都是由 Nix 從 Nix 表達式構建的。
穩定的 NixOS 版本每年發布兩次(大約在 5 月底和 11 月底)。[1][2][3]
歷史
此章節需要擴充。 (2023年12月1日) |
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 下運行。
參考連結
- ^ 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].
- ^ 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).
- ^ Jonatha Lorimer. The Nix Thesis.
- ^ Dolstra, Eelco. Purely Functional System Configuration Management. www.usenix.org. [2024-03-04].
- ^ Moving to GitHub. Nixos.org. [2011-09-28].
- ^ Stichting NixOS Foundation. Nixos.org. [2015-09-19].
- ^ Nix Steering Committee Election 2024. Nixos.org. [2024-09-16].
- ^ About NixOS. Nixos.org. [2015-09-19].
外部連結
- 社群
- (簡體中文)NixOS 中文社區