当前位置:首页>Linux>Linux 最新资讯 20260414——Rust For Linux 7.1 引入实验性选项以提升性能; 面向的新型容错文件系统FTRFS提交提案

Linux 最新资讯 20260414——Rust For Linux 7.1 引入实验性选项以提升性能; 面向的新型容错文件系统FTRFS提交提案

  • 2026-09-03 17:08:26
Linux 最新资讯 20260414——Rust For Linux 7.1 引入实验性选项以提升性能; 面向的新型容错文件系统FTRFS提交提案
               01             
Rust For Linux 7.1 引入实验性选项以提升性能

在Linux 7.1合并窗口开启前夕,米格尔·奥赫达于周五发布了所有Rust功能更新。此次更新包括提升构建Linux内核所需的最低Rust版本,以及一项可为内核内Rust代码提供更优性能的新实验性选项,同时涵盖其他多项改进。

根据Phoronix此前报道,Linux内核的最低Rust版本要求正在提升。Rust-For-Linux支持的新基准版本将从原先的Rust 1.78变更为Rust 1.85。同时,Bindgen版本要求也从先前内核的0.65.1升级至0.71.1。

当前Rust与Bindgen版本与去年八月发布的Debian稳定版Trixie所集成的版本保持一致。鉴于Debian稳定版通常采用较为保守的软件版本策略,较新的Ubuntu/Fedora/openSUSE等发行版均能轻松满足或超越构建内核所需的新Rust基准要求。

Linux 7.1中另一项值得关注的Rust变更是新增了"CONFIG_RUST_INLINE_HELPERS"内核配置选项,该选项支持将C辅助函数内联至Rust代码中。此过程类似于链接时优化(LTO),但仅针对C辅助函数。启用该选项可为不同工作负载带来显著加速效果,例如在启用新选项后,Rust空块驱动器的性能提升约2%。

将C辅助函数内联至Rust代码的实现依赖于使用LLVM Clang作为Linux内核的C编译器(而非GCC),且Clang的LLVM主版本号必须与Rust编译器版本匹配。这是因为该技术需要在生成目标代码前,将LLVM中间表示与C辅助函数的LLVM中间表示进行链接。这种CONFIG_RUST_INLINE_HELPERS方案同样适用于可加载内核模块。

Linux 7.1的Rust代码还包含对全局版本标志的支持、内核库的增强改进、Rust分析器优化以及多项其他变更。完整的Linux 7.1 Rust功能更新列表可通过此拉取请求查阅。

               02             
FTRFS:面向Linux的新型容错文件系统提案             

今日一组补丁系列旨在就引入FTRFS文件系统征求技术意见。相比上周提出的VMUFAT文件系统方案,FTRFS提案更具创新意义。

FTRFS是"容错抗辐射文件系统"的缩写。虽然其名称与Btrfs相似,但两者并无关联。该文件系统专为辐射密集型环境设计,适用于太空及其他极端环境条件。随着近地轨道太空超级计算/数据中心关注度日益提升,FTRFS未来可能迎来重要发展机遇。

这款抗辐射文件系统具备以下特性:基于数据块和索引节点的CRC32数据完整性校验、里德-所罗门前向纠错技术,以及与EDAC兼容的错误追踪机制。

目前FTRFS已实现基础功能,规划中的特性包括:文件系统检查工具支持、扩展属性、SELinux安全模块支持,以及大文件的间接块寻址功能。

对该容错抗辐射文件系统感兴趣的技术人员,可在Linux内核邮件列表中查阅今日发布的RFC补丁系列进行深入研究。

               03             
Btrfs 带来性能提升,关机 ioctl 在 Linux 7.1 中趋于稳定

在周日Linux 7.0内核正式发布前,提交给Linus Torvalds的早期拉取请求中包含了Btrfs文件系统的更新。Btrfs文件系统在Linux 7.1中迎来了更多性能优化,其关机ioctl功能也不再是实验性特性,同时还修复了各类问题。

在性能方面,Linux 7.1中的Btrfs通过加速清除跟踪范围内的首个区段,使示例工作负载的吞吐量提升了约10%。此外还减少了同一事务期间对区段缓冲区的写时复制重写,在事务提交时更新设备统计信息时避免占用大型设备锁,修复了截断空文件时不必要的关闭刷新操作,并防止了压缩预读期间的直接回收机制。

早在Linux 6.19版本中,Btrfs就引入了实验性的关机ioctl功能。该功能用于将文件系统状态设置为关机,并让待处理操作尝试及时完成并停止运行。这与XFS文件系统的关机机制类似,而在Linux 7.1中,该功能已脱离实验性标志正式启用。

Btrfs现在还能通过FSERROR机制报告文件系统关机状态,改进了多种错误处理方式,并为Linux 7.1版本修复了若干程序缺陷。

针对Linux 7.1合并窗口提交的完整Btrfs功能变更列表,可通过此拉取请求查看。

               04             
扩展属性在套接字上的支持已合并至 Linux 7.1,应 GNOME 与 systemd 开发者需求而实现         

在Linux 7.1合并窗口期的首日,首批获准合并的拉取请求中包含了Christian Brauner提交的多个VFS相关补丁。其中合并的代码实现了对套接字上user.*扩展属性的支持。

这项套接字扩展属性功能尤其受到GNOME和systemd开发者的期待,这是他们推动更广泛采用Varlink作为进程间通信(IPC)机制的重要一环。套接字上的user.*扩展属性对Linux容器使用场景也大有裨益。

Brauner在拉取请求中精辟总结了新功能: 

"重构简单扩展属性机制并支持套接字上的user.*扩展属性。本次重构了simple_xattr基础架构,新增了对套接字上user.*扩展属性的支持。 ... 基于此基础架构,本系列补丁实现了套接字上的user.*扩展属性支持。基于路径的AF_UNIX套接字可从底层文件系统(如tmpfs)继承扩展属性支持,但sockfs中的套接字——包括通过socket()创建的所有套接字及抽象命名空间AF_UNIX套接字——此前完全不具备扩展属性支持。

我们重构了xattr_permission()检查机制,以允许在S_IFSOCK索引节点上使用user.*扩展属性。Sockfs套接字为每个索引节点设置了128个扩展属性数量上限和128KB总值的容量限制,这与kernfs现行限制保持一致。

实际需求来自多个方面。systemd和GNOME正在扩大Varlink作为IPC机制的应用范围。对于D-Bus,存在诸如dbus-monitor这类可观测系统级IPC流量的工具,但这仅因D-Bus具有中央代理机制才得以实现。Varlink没有代理机制,目前无法识别哪些套接字使用Varlink协议。通过套接字上的user.*扩展属性,服务可为其套接字标记所使用的IPC协议(例如user.varlink=1),eBPF程序随后便能选择性捕获这些套接字的流量。结合这些扩展属性标签,通过netlink枚举绑定套接字为发现所有Varlink IPC入口点提供了调试和自省的新途径。

同样地,systemd-journald希望在/dev/log套接字上使用扩展属性进行协议协商,以表明是否支持RFC 5424结构化syslog,或是否仅应使用传统的RFC 3164格式。

在容器环境中,这些标签尤为实用,因为高权限或更复杂的套接字识别方案往往不可用。

本系列补丁配备了全面的自测用例,涵盖基于路径的AF_UNIX套接字、sockfs套接字操作、单索引节点限制强制执行,以及跨多地址族(AF_INET、AF_INET6、AF_NETLINK、AF_PACKET)的扩展属性操作。"

Linus Torvalds已将这项套接字用户扩展属性支持合并至Linux 7.1版本周期,且未收到任何异议。

// Source: Phoronix

最新文章

随机文章