开源世界每日都有新动态。本期我们关注Ubuntu 26.04对AMD ROCm的集成进度、Fish Shell 4.6版本对最新systemd环境变量的支持,以及LLVM动态链接优化带来的显著性能提升。
Ubuntu 26.04 集成 ROCm 事项仍在推进中
Ubuntu 26.04 LTS 距离正式发布仅剩三周,它将带来从 GNOME 50 桌面环境到前沿的 Linux 7.0 内核等一系列重要更新。其中一项备受期待的功能,是 Canonical 计划在官方软件仓库中直接提供 AMD ROCm 开源 GPU 计算堆栈,这将为开发者提供更简洁的安装体验。
回顾去年十二月的公告,此次支持的核心亮点之一是:用户未来可直接通过 apt install rocm 命令简化安装流程,或将其作为其他项目(如 ollama-AMD)的自动依赖项进行安装。
然而,在当前 Ubuntu 26.04 的测试版中尝试执行 sudo apt install rocm,会发现关键的 ROCm 元数据包尚未就位,其他相关软件包也未完成集成。查看主仓库,现有的 rocm* 软件包版本仍停留在 ROCm 7.1。与此同时,ROCm-devel PPA 也依旧基于较早的 ROCm 7.1 系列。而 ROCm 7.2 及其修复版本 7.2.1 已于今年早些时候发布,带来了新功能并增强了对 Windows WSL2 的支持。
昨日,Canonical 工程师 Talha Can Havadar 的软件包上传权限申请终获批准,他将负责维护 Ubuntu 中的 ROCm 软件包。我们仍需关注,在 4 月 23 日 Ubuntu 26.04 LTS 功能冻结之前,ROCm 支持能否完全准备就绪并更新至最新版本,还是会在发布后才逐步完善。就目前而言,希望在 Ubuntu 上使用 ROCm 的用户,最好继续采用 AMD 提供的最新上游软件包。
Fish 4.6 Shell 新增对最新 systemd 环境变量的支持
Fish 4.6 版本正式发布,它带来了对表情符号图标宽度的更好处理,改进了标签页补全分页器的对齐方式,并优化了 set_color 等功能。
本次更新的一个重要特性是新增了对 SHELL_PROMPT_PREFIX、SHELL_PROMPT_SUFFIX 和 SHELL_WELCOME 环境变量的支持。这些变量自 2024 年起由 systemd 设置,旨在自动在 Shell 提示符前后添加定制内容,并在启动时显示欢迎信息。systemd 的 run0 等工具会利用这些变量来增强用户体验。
这项功能的背景在 2024 年的 systemd 拉取请求中有详细阐述。与此同时,Fish Shell 的工单也一直在追踪该需求,并最终在 4.6 版本中实现。下图展示了在 Docker 容器中运行 Fish 4.6 并设置这些变量的效果:

在 systemd 方面,相关功能已于 systemd 257 版本中合并。这意味着现代 Linux 系统与友好交互式 Shell 之间的协作变得更加无缝。更多关于 Fish 4.6 的下载信息及详细变更内容,可访问其 GitHub 仓库页面查看。对于系统运维和自动化脚本编写,理解这些环境变量的机制尤为重要,你可以在我们的网络/系统板块找到更多相关讨论。
LLVM 动态链接时优化现能更高效地添加文件至链接过程,显著提升性能表现
去年,LLVM 开始落地其分布式 ThinLTO(简称 “DTLTO”)支持,作为对其链接时优化(LTO)方法的增强。本周,一项旨在解决向链接过程添加文件时发现的性能瓶颈的改进被合并到 LLVM 主线。
开发者 Ben Dunbobbin 针对使用 DTLTO 向链接添加文件时的性能进行了优化。在极端测试场景下(Windows 系统,AMD Ryzen 16 核处理器),向链接添加一个文件的时间从约 2799 毫秒大幅降至仅 157 毫秒。在 Linux 系统下,该补丁也将时间从约 255 毫秒减少到仅约 41 毫秒。
Ben 解释了该补丁的工作原理:
“进程内的 ThinLTO 后端通常在内存中生成目标文件,并直接将其添加到链接中,除非正在使用 ThinLTO 缓存。DTLTO 的特殊之处在于,它在所有情况下都从磁盘向链接添加文件。
当未使用 ThinLTO 缓存时,ThinLTO 通过链接器提供的 AddStreamFn 回调添加文件,这最终会追加到 LLD 中的 SmallVector。当使用缓存时,链接器提供 AddBufferFn 回调,以更高效的方式添加文件(通过转移 MemoryBuffer 的所有权)。
此补丁允许客户端可选地向 DTLTO ThinLTO 后端提供 AddBufferFn。当可用时,后端使用此函数更高效地将文件添加到链接。”
对于 LLVM/Clang 工具链的用户而言,这项仅通过重写几十行代码实现的优化,意味着在大型项目构建时将获得可观的性能提升。此类编译与链接的深度优化,是提升开发效率的关键,也是计算机科学基础领域持续探索的方向。
本文资讯编译自 Phoronix。想与更多开发者交流前沿技术动态?欢迎来云栈社区一起探讨。