这段驱动代码中使用了 Rust for Linux 中提供的kernel库,用其中包括的抽象gpio、irq、amba、power准确表达了这段驱动代码中的结构和实现意图,可以更好地和驱动开发者对驱动开发建立的心智模型对应起来,这就是 Rust 语言的抽象表达能力。 gpio::Chiptrait 是对 gpio chip 的一种跨平台抽象接口,它也是一种依赖倒置。
内核维护者Greg Kroah-Hartman表示,此举标志着Linux内核从C语言转向Rust的步伐正在加快,这为希望用Rust编写内核驱动程序的开发者开启了新的可能性。 Rust编程语言的引入:机遇与挑战 Greg Kroah-Hartman特别提到,Rust中‘misc驱动绑定’的引入,意味着开发者将能更方便地实现Rust语言的驱动开发。他评论说:“这是一个转折...
开发者就此询问了 Linux 内核稳定版维护者 Greg Kroah-Hartman,Greg 表示愿意接受用 Rust 开发 Linux 内核的驱动程序,但前提是:1)以可选的方式存在,而不是默认启用,这样其他开发者就不需要使用 Rust 去构建内核;2)Rust 驱动需要体现出比 C 驱动具有优势,比如针对内核API的安全封装器。 不过底下有开发者指出了目...
自Linux 6.1起,初始的Rust基础设施被添加到Linux内核中。此后为了使内核驱动程序能够用Rust编程语言编写,Linux内核已经合并了许多其他管道和内务管理工作。随着即将到来的Linux 6.8内核周期,第一个Rust网络驱动程序将被引入。最近一个“net-phy-rust”驱动程序被合并到了net-next.git分支。该驱动为phylib Rust绑定...
这段驱动代码中使用了 Rust for Linux 中提供的kernel库,用其中包括的抽象gpio、irq、amba、power准确表达了这段驱动代码中的结构和实现意图,可以更好地和驱动开发者对驱动开发建立的心智模型对应起来,这就是 Rust 语言的抽象表达能力。 gpio::Chiptrait 是对 gpio chip 的一种跨平台抽象接口,它也是一种依赖倒置...
在Linux内核的发展历程中,Rust语言的引入被视为一个重大的技术演变。2023年11月30日,随着Linux 6.13内核版本的合并更新,包括USB更新和一系列大型staging分支的改进,“char/misc”模块也迎来了重要的Rust相关更改。项目负责人Greg Kroah-Hartman表示,这些更改使得基于Rust的内核驱动开发成为可能,这标志着Rust在内核领域的...
在Linux当中一旦内核态的代码执行中出现不可恢复的错误,一般是通过panic操作来记录相关信息及调用栈,但由于Rust的内存申请与释放机制,其编译器通常会隐藏内存分配的操作,这就很可能使panic!()的调用出现问题。而且在某些驱动程序中,内存分配失败不应该直接使内核产生panic,因此Rust在申请内存失败后如果直接调用panic!,可...
v7 补丁系列提供了设备/驱动程序/PCI 平台 Rust 抽象,如果一切顺利,现在代码已经到达 driver-core-next 分支,将在 Linux 6.14 中合并。这些补丁是正在开发中的 NOVA 内核驱动程序、Rust NVMe 驱动程序和其他即将推出的真正驱动程序所需要的。 此外,这些补丁本身还引入了新的 Rust 驱动程序示例,用于演示 PCI ...
Rust Linux 驱动程序实现与 C 代码相当的性能 在都柏林举行的 2022 年 Linux Plumbers 大会(LPC)的 Rust 小型会议上,介绍了 Rust for Linux 工作的最新状况。Linux 内核已经有了很好的 C 语言编写的 NVMe 驱动,西部数据的测试显示,虽然其开发的 Rust NVMe 驱动仍处于早期阶段,但其驱动性能与 C 编写的驱动一样...