Linux 6.1 正式在内核中添加对 Rust 的支持

Rust 正式进入 Linux 内核开发

经过两年多的开发,Rust 支持已在稳定版 Linux 6.1 中正式发布。这是 Rust 首次成为继 C 语言之后,第二种被官方接受的 Linux 内核开发语言。

开发背景与现状

在正式发布之前,Rust 支持已在 linux-next(开发者与维护者的 Git 树合并结果)中提供了一年多。目前的 Rust 支持仅是最低限度的实现,旨在让 Rust 代码能够在内核中编译。这意味着 Rust 支持尚未完全成熟,未来版本中预计会有基础设施层面的多项改进。

实际驱动开发进展

尽管 Rust 支持仍处于初期阶段,但已有一些实际驱动程序的开发工作正在进行中,包括:

  • NVMe 驱动:一个基于 Rust 的 NVMe 驱动程序。
  • 9p 服务器:一个用于 9p 协议的 Rust 实现。
  • Apple Silicon GPU 驱动:为 Apple Silicon GPU 开发的 Rust 驱动程序。

架构支持与编译要求

Rust for Linux 仅在 LLVM/Clang 支持的架构上可用,包括 arm、arm64、x86、powerpc、mips 等。由于 Rust 依赖于 LLVM/Clang 进行编译,因此必须使用 LLVM/Clang 工具链构建整个 Linux 内核,而不是传统的 GNU 工具链。具体构建步骤可参考官方文档。

Rust 与 C 的桥接

Rust for Linux 的一个关键部分是桥接 Rust 和 C 的世界:

  • Bindings(绑定):Rust for Linux 创建了一组 Rust 声明,将 C 层的函数和类型转换为 Rust 可用的形式。
  • Abstractions(抽象):Rust for Linux 还提供了围绕内核 C 代码的 Rust 封装,使开发者能够在不直接访问 C 绑定的情况下编写 Rust 驱动程序。目前,这些抽象仅适用于有限的内核 API,但随着项目的进一步发展,其数量将逐渐增加。

总结

Rust for Linux 的正式发布标志着 Linux 内核开发迈出了重要一步,尽管目前的支持还处于初级阶段,但未来的改进和新驱动程序的开发将为其带来更多可能性。

阅读 71
0 条评论