技術

Shelly 3.0從C#切換至Zig:Arch Linux套件管理器不再依賴.NET執行時

Adrian Kessler

Shelly,Arch Linux 上最廣泛使用的圖形化套件管理員,現在開啟時不再啟動受管理的執行環境。3.0 版本以 Zig 重新構建了整個應用程式——Zig 是一種直接編譯為原生機器碼的系統程式語言——取代了自最初版本以來驅動該工具的 C# 程式碼庫。

實際的差異體現在啟動時。過去 Shelly 必須先載入 .NET 執行環境才能執行任何操作,而 3.0 的二進位檔則直接執行。記憶體佔用也隨之下降:原生二進位檔沒有垃圾回收機制或虛擬機器,因此應用程式從視窗出現的那一刻起就使用更少的 RAM。

這次重寫也帶來了一系列長期以來被要求的功能。重新設計的桌面介面現在提供網格與列表檢視來瀏覽套件,此外還有 AUR PKGBUILD 預覽功能,讓使用者在決定安裝前能先檢視建構腳本。命令列版本現在能一次搜尋官方儲存庫、AUR、AppImages 與 Flatpaks——因此單一查詢就能傳回指定應用程式的所有可用選項,無論其打包方式為何。

Zig 並非這個版本中唯一嶄露頭角的記憶體安全語言。CachyOS 也將負責核心層級硬體設定管理的守護行程從 C++ 重寫為 Rust,並將系統匣更新通知器遷移至 Rust 基礎。這兩種語言扮演不同角色:Zig 負責使用者面對的應用層,Rust 則負責背景服務——在核心邊界上,穩定性是首要考量。

有一個限制值得一提:CachyOS 是針對效能調校的 Arch Linux 分支,擁有忠誠但相對較小的使用者基礎。Shelly 3.0 並未收錄在標準的 Arch Linux 儲存庫中,因此不會影響 Debian、Fedora、Ubuntu 或其他主流發行版的使用者。在 Arch 社群之外的意義,與其說是立即的實質改變,不如說是一種訊號——Shelly 加入了包括 Bun 和 TigerBeetle 在內的少數生產級應用程式行列,這些應用程式現在已將 Zig 交付給真實使用者。

Zig 作為 C 與 C++ 在系統層級工作中的實用替代方案,正逐漸獲得關注。與 Rust 不同,它不需要複雜的所有權型別系統,這使得移植現有 C 程式碼庫更加直接——但代價是編譯器提供的安全保證較少。對 Shelly 團隊而言,考量到專案的規模,若改用 Rust 來取代整個原始 C# 程式碼庫將會困難得多。

2026 年 8 月的 ISO 映像檔可在 CachyOS 下載鏡像站取得。現有使用者可透過標準的 pacman 系統升級立即更新。一個熱修復版本——Shelly 3.0.1——在主要版本釋出兩天後即推出,以處理早期回報的邊緣案例,這個節奏顯示新程式碼庫正處於積極維護中。

標籤: , , , , ,

討論

共有 0 則留言。