Linux 内核在持续推进 Rust 支持。根据最新合并的补丁,Linux 6.19 将加入用于编写 I2C 驱动的 Rust 基础设施,这是继 LED 等子系统之后,Rust 语言在驱动层的又一扩展。
最近几周,内核的 driver-core-next 分支已经合并了一系列补丁,这些补丁引入了“Rust I2C 绑定 (bindings)”以及示例驱动 (sample drivers) —— 也就是说,基础设施已经搭建完成。
这些补丁提供了必要的 “核心抽象 (core abstractions)” 和 API,包括:安全封装的 I2C 客户 (client)/适配器 (adapter)/驱动 (driver) 等抽象类型,以及用 Rust 注册 I2C 设备 (device) 的接口。
同时还附带了一个 “Rust I2C sample driver” 和 “Rust I2C client registration sample”,分别展示如何用传统 I2C-ID 表 (legacy ID table)、设备树 (OF / device-tree)、ACPI 等机制绑定设备,以及如何在运行时手动注册 I2C 设备。
虽然基础设施和样例驱动已经就绪,但截至目前为止,还没有看到 “真正的、用于硬件的 Rust I2C 驱动 (hardware I2C drivers)” 被合并到主线。也就是说,普通设备还不能因为这个变化立即获得 Rust 驱动支持。
这次支持主要是为开发者 — 想要用 Rust 编写内核 I2C 驱动的人 — 打下基础,并不能自动带来对所有 I2C 设备的新支持或性能收益。
(文/开源中国)