WD 正在使用 Rust 开发 NVMe 驱动程序。 在 FreeBSD 上试验 Rust

在今天举行的会议上 Linux 在 2022 年水管工大会上,西部数据的一名工程师提交了一份关于用 Rust 编写的 NVM-Express (NVMe) SSD 实验性内核级驱动程序开发的报告。 Linux虽然该项目仍处于早期开发阶段,但测试表明,基于 Rust 的 NVMe 驱动程序的性能与用 C 编写的内核 NVMe 驱动程序的性能相当。

WD 正在使用 Rust 开发 NVMe 驱动程序。 在 FreeBSD 上试验 Rust
WD 正在使用 Rust 开发 NVMe 驱动程序。 在 FreeBSD 上试验 Rust

报告指出,目前 C 语言的 NVMe 驱动程序对开发人员来说完全令人满意,但 NVMe 子系统是探索用 Rust 开发驱动程序可行性的良好平台,因为它非常简单、使用广泛、性能要求高、并且具有用于比较的经过验证的参考实现,支持各种接口(dev、pci、dma、blk-mq、gendisk、sysfs)。

值得注意的是,Rust 的 PCI NVMe 驱动程序已经提供了操作所需的功能,但尚未准备好广泛使用,因为它需要单独的改进。 未来的计划包括消除现有不安全块的代码、支持设备删除和驱动程序卸载操作、支持 sysfs 接口、实现延迟初始化、为 blk-mq 创建驱动程序,以及尝试为queue_rq 使用异步编程模型。

播放视频

此外,我们还可以注意到 NCC Group 为使用 Rust 语言为 FreeBSD 内核开发驱动程序而进行的实验。 作为示例,我们详细研究了一个简单的 echo 驱动程序,该驱动程序返回写入文件 /dev/rustmodule 的数据。 在下一阶段的实验中,NCC Group正在考虑用Rust语言重新设计内核核心组件的可能性,以提高网络和文件操作的安全性。

虽然 Rust 已经能够创建简单的模块,但要将 Rust 更紧密地集成到 FreeBSD 内核中,还需要做更多的工作。例如,需要创建一套类似于 Rust for 项目开发的框架的内核子系统和结构抽象层。 Linux未来,我们计划对 Illumos 核心进行类似的实验,并找出 Rust 中可用于 Rust 驱动程序的通用抽象。 Linux,BSD 和 Illumos。

据微软和谷歌称,其软件产品中大约 70% 的漏洞是由不安全的内存处理引起的。 预计Rust语言的使用将降低因不安全的内存操作而导致的漏洞风险,并消除诸如访问已释放的内存区域和溢出缓冲区等错误的发生。

Rust 在编译时通过引用检查、跟踪对象所有权和对象生命周期(作用域)以及在代码执行期间评估内存访问的正确性来提供内存安全处理。 Rust 还提供防止整数溢出的保护,要求在使用前强制初始化变量值,更好地处理标准库中的错误,默认应用不可变引用和变量的概念,提供强静态类型以最小化逻辑错误。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster