技术

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 条评论。