Linux 版 Rust 的第九个版本到来并告别对 Linux 3.2 之前版本的支持

哇,工作 对 Linux 的 Rust 驱动程序支持正在进行中 并且已经开始了相当持续的发展,因为它没有太多可做的 版本 8 发布 补丁,就是这样 现在我们有版本 9。

正是在已经提出的第九个版本中,值得一提的是 是前几天出版的第八版的简化版. 该套件的特点是显着减小了大小,并且只保留了最必要的最小值,足以构建用 Rust 编写的内核模块。

假设最小补丁 将使在主内核中采用 Rust 支持变得更容易。 在提供最低限度的支持后,计划逐步增加现有功能,从 Rust-for-Linux 分支移植其他更改。

这是一系列补丁 (v9),旨在为 Linux 内核添加对 Rust 作为第二语言的支持……

像往常一样,特别感谢 ISRG(互联网安全研究组) 和谷歌在这项工作中的财政支持。

与版本 8 相比,补丁的大小已从 40 行减少到 000 行代码。 例如,版本 3 仅包含来自“kernel”box 包的 500% 的代码(60 行)和 32% 的 alloc 库,允许您使用 Vec 类型创建最简单的内核模块。 并使用“pr_info!”宏在内核日志中显示信息。

此外, 关于 Rust 和 Linux,值得一提的是,最近 Rust 项目开发者警告 给用户关于 对 Linux 环境的需求即将增加 在编译器、Cargo 包管理器和 libstd 标准库中。

从 Rust 1.64 开始,计划于 22 年 2022 月 XNUMX 日发布,Glibc 的最低要求将从 2.11 版本提高到 2.17,Linux 内核从 2.6.32 提高到 3.2. 这些限制也适用于使用 libstd 构建的 Rust 二进制文件。

RHEL 7、SLES 12-SP5、Debian 8 和 Ubuntu 14.04 发行版满足新要求。 将停止支持 RHEL 6、SLES 11-SP4、Debian 7 和 Ubuntu 12.04。 弃用对旧版 Linux 系统的支持的原因包括继续支持旧版环境的资源有限。

为什么要提高要求?
我们希望 Rust 和 Rust 生成的二进制文件尽可能广泛地使用。 同时,Rust 项目只有有限的资源来保持与旧环境的兼容性。

工具链要求有两部分:在主机系统上运行 Rust 编译器的最低要求,以及交叉编译二进制文件的最低要求。

主机工具链的最低要求会影响我们的构建系统。 Rust CI 为几十个不同的目标生成二进制工件。 构建支持旧版本 glibc 的二进制文件需要使用旧 glibc 构建操作系统(用于本地构建)或使用带有旧版本 glibc 的构建根(用于交叉构建)。

特别是, 兼容较旧的 Glibcs​​ 需要使用较旧的工具 在持续集成系统中验证时, 与对 LLVM 和交叉编译实用程序的版本控制要求增加相比。 内核版本要求的增加是由于 libstd 能够使用新的系统调用而无需维护层以确保与旧内核的兼容性。

建议在具有较旧 Linux 内核的环境中使用 Rust 创建的可执行文件的用户升级他们的系统,继续使用旧版本的编译器,或维护他们自己的分层 libstd fork 以保持兼容性。

最后,如果你有兴趣能够了解更多,可以查阅详情 以下链接。


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。