自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 的一种跨平台抽象接口,它也是一种依赖倒置。
• Rust Linux 驱动程序实现与 C 代码相当的性能 • PyTorch 成为 Linux 基金会的顶级项目 • 思科承认“阎罗王”勒索团伙泄露了其数据,但表示没有问题 作者:硬核老王 (本文字数:930,阅读时长大约:1 分钟)Rust Linux 驱动程序实现与 C 代码相当的性能 ...
开发者就此询问了 Linux 内核稳定版维护者 Greg Kroah-Hartman,Greg 表示愿意接受用 Rust 开发 Linux 内核的驱动程序,但前提是:1)以可选的方式存在,而不是默认启用,这样其他开发者就不需要使用 Rust 去构建内核;2)Rust 驱动需要体现出比 C 驱动具有优势,比如针对内核API的安全封装器。 不过底下有开发者指出了目...
据说安全性要比 C 或 C++ 语言好,而且效率可以媲美 C 或 C++ 语言。目前谷歌在力推,正在逐步替换进Android。貌似Linux内核也在接受改变,网上有传,占据linux内核代码将近一半的驱动代码,有率先被 Rust 替换开发的可能;也就是说,以后我们写 linux 驱动代码,很有可能就要用 Rust 来写了。
Rust for Linux 这个项目的目的就是为了将 Rust 引入 Linux,让 Rust 成为 C 语言之后的第二语言。但它最初的目的是:实验性地支持Rust来写内核驱动。
在Linux当中一旦内核态的代码执行中出现不可恢复的错误,一般是通过panic操作来记录相关信息及调用栈,但由于Rust的内存申请与释放机制,其编译器通常会隐藏内存分配的操作,这就很可能使panic!()的调用出现问题。而且在某些驱动程序中,内存分配失败不应该直接使内核产生panic,因此Rust在申请内存失败后如果直接调用panic!,可...
Debian bullseye (linux 5.10.0-15) QEMU 5.2.0 (Debian 1:5.2+dfsg-11+deb11u2) --enable-kvm , -m 32G , -cpu host , --smp 2 PCI pass-through (vfio-pci) 测试结果: Hindborg 称,结果表明该 Rust 驱动程序能够实现与 C 驱动程序相当的性能;但目前该驱动程序还没有成熟,欢迎大家踊跃参与贡献。
此前,我们也曾在《Linux 诞生32年:“暴君”Linus 平和了》一文中报道过,Torvalds对于在内核中使用Rust持开放态度。他曾谈到,从明年开始会着手将Rust引入驱动程序、甚至是某些主要子系统,总之“Rust确实有成为内核重要部分的趋势”。因此,在Linux新闻网站Phoronix报道Righi的工作时,将关注点放在了Rust的使用上。让...
Rust Linux 驱动程序实现与 C 代码相当的性能 在都柏林举行的 2022 年 Linux Plumbers 大会(LPC)的 Rust 小型会议上,介绍了 Rust for Linux 工作的最新状况。Linux 内核已经有了很好的 C 语言编写的 NVMe 驱动,西部数据的测试显示,虽然其开发的 Rust NVMe 驱动仍处于早期阶段,但其驱动性能与 C 编写的驱动一样...