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 設備的新支持或性能收益。