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 内核开发迈出了重要一步,尽管目前的支持还处于初级阶段,但未来的改进和新驱动程序的开发将为其带来更多可能性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。