AerynOS,一款以平台願景為基礎架構的新發行版

AerynOS

在一篇冗長的技術文章中, Ikey Doherty (因領導 Solus 等專案和為 Clear Linux 做出貢獻而聞名) 概述了 AerynOS 的理念和架構這個新計畫旨在重新思考作業系統在基礎設施即程式碼時代應該如何運作。

它不僅僅是 Linux 生態系統中的另一個發行版, AerynOS 是對現代作業系統的深刻重新構想。

從分銷到基礎設施

AerynOS 源於一個問題 挑釁: “如果作業系統的行為像現代基礎設施一樣會怎麼樣?”。答案是一個從頭開始構建的平台,不拖延傳統發行版的遺留慣例,也不改變現有系統,AerynOS 從一個乾淨的基礎開始,利用以前的經驗並做出徹底的架構決策,以確保一致性、可逆性和結構簡單性。

Ikey Doherty在他的文章中提到 最引人注目的決定之一是採用 LLVM 工具鏈 而不是傳統的GNU,預設使用libc++和compiler-rt。這種選擇不僅是出於風格偏好,也是出於策略。 實現卓越的診斷和更高的便攜性。儘管進行了升級,AerynOS 仍然致力於使用 glibc 作為其標準庫,選擇它而不是 musl 是因為它在多線程負載和要求苛刻的應用程式下具有卓越的性能。

除此之外,也提到 AerynOS 的核心理念之一是“無狀態”: 沒有軟體包可以安裝 /usr 以外的檔案。 這種嚴格的劃分將使用者空間(/etc、/var)與系統空間分開,消除了合併衝突並促進了乾淨的升級。這個想法可以追溯到 Clear Linux,旨在強制執行合理的預設值並避免更靈活的系統經常引入的不必要的複雜性。

原子和可逆更新

AerynOS 使用全新的套件管理系統 Moss, 執行原子事務。每次更新都會使用重複資料刪除儲存體的硬連結建立新的 /usr 樹,並使用 renameat2() 以原子方式與目前樹交換。此機制確保更新要么完全完成,要么根本不應用,從而避免中間狀態。

啟動管理也打破了傳統。 得益於 blsforme 和 disks-rs 等工具,AerynOS 透過直接讀取超級區塊動態產生核心命令列 文件系統,從而無需 root=。此外,每個核心都與其特定的交易相關聯,從而方便從啟動選單進行系統回滾,並允許在 ESP 遺失時從頭開始重建啟動環境。

.stone 格式:一種打包軟體的新方法

另一個關鍵組件是 .stone 格式,現代二進位包 設計具有版本獨立性和高效率。每個 .stone 檔案包含:

  • 套件檔案的重複內容刪除
  • 哈希索引(XXH128,計劃遷移到 Blake3)
  • 目標檔案系統的地圖
  • 類型元數據,例如名稱、版本、功能等。

而不是直接安裝文件,“ .stone 儲存在內容可尋址儲存中 (CAS)並作為交易的一部分進行編譯。這種方法不僅提高了效能,而且還可以輕鬆恢復任何變更。

套件管理系統不遵循傳統的命令式模型。開發人員認為直接安裝指令「引入的錯誤比解決的錯誤還多」。相反,每個事務都會建立一個新的系統圖,為未來類似於 Nix 或 Gentoo 的聲明模型鋪平道路,其中描述系統的所需狀態而不是執行更改命令。

AerynOS 是不可變的嗎?

儘管它經常被描述為一個不可變的系統,但創建者自己澄清說這並不完全正確。 系統不阻止唯讀訪問,當事務替換 /usr 樹時, 完全的不變性尚未實現。 長期目標是利用 overlayfs 和 erofs 等技術,無需重新啟動即可實現這一目標。

儘管還處於 alpha 階段,AerynOS 已經擁有可用的 ISO、對 GNOME 的支援、與 Steam、NVIDIA、Flatpak 的兼容性,有真實用戶對其穩定性和效能表示稱讚。儘管該系統仍在不斷發展,但它已經運作良好,可以在現實場景中進行測試。

來源: https://aerynos.com