首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 内核即将迎来更多 Rust 驱动程序的时代

Rust 在 Linux 内核中的发展势头良好,预计将在短期内带来显著收益,尽管与以 C 语言为主的代码库的整合仍显得不太顺畅。

在近期维护者争议引发人们对 Linux 维护者是否愿意接纳 Rust 代码的质疑之际,互联网安全研究组的 Prossimo 内存安全项目负责人 Josh Aas 在上周末对 Miguel Ojeda 在内核内存安全方面的工作表示赞赏,他的发言中并未提及编程语言之争。

Aas 表示:"虽然我们从未打算用 Rust 重写整个内核,但我们很高兴看到各个子系统对 Rust 优势的认可度不断提升。如今,多家公司都有专职工程师致力于 Linux 内核中的 Rust 开发工作。"

自去年 9 月起,当微软软件工程师 Wedson Almeida Filho 因"非技术性的无聊事务"离开 Rust for Linux 项目时,就已经清楚地表明了接受度是有限的。今年 1 月,Rust 和 C 语言内核贡献者之间的紧张关系再次升级,主要是由于维护混合语言代码库带来的挑战 - 一位维护者将其比作癌症。在被敦促介入后,Linux 创始人 Linus Torvalds 表达了对双方的不满,最终导致相关人员辞去 Linux 维护者职务。

在此期间,主导 Rust for Linux 项目的 Ojeda 发布了"Rust 内核政策",以明确向 Linux 内核贡献 Rust 代码的开发者应当继续前进,并强调 Linux 领导层仍然支持这一倡议。

据 Aas 介绍,Rust 代码在多个 Linux 子系统中的应用正在增加,包括:PHY 驱动程序、空块驱动程序、DRM 异常屏幕二维码生成器、Android binder 驱动程序、Apple AGX GPU 驱动程序、NVMe 驱动程序以及 Nova GPU 驱动程序。

Aas 表示:"我们预计其中一个驱动程序将在未来 12-18 个月内被合并到主线内核中。"他引用了 Linux 副手 Greg Kroah-Hartman 去年 11 月的言论,提到 Rust 驱动程序绑定的可用性代表着一个转折点,这将使大多数驱动程序子系统开始采用 Rust 驱动程序。

Aas 补充道,一旦这种情况发生,"这项工作的目标就将开始实现:运行带有 Rust 驱动程序的 Linux 的产品和服务将变得更加安全,这意味着使用它们的人也将获得更好的安全保障。"

安全性 - 特别是内存安全 - 是 Rust 的主要卖点。

Rust 提供了避免内存安全漏洞的方法,这些漏洞常见于允许手动内存管理的编程语言,如 C 和 C++。虽然 Python、Java、JavaScript、Swift 和 C# 等语言也被认为是内存安全的,但 Rust 收到了最多的内存安全推广,部分原因是它适合过去几十年来通常用 C 和 C++ 编写的低级别、性能敏感的代码。

正如我们最近报道的,对 Rust 的公开推崇以及公共部门对这一信息的呼应,已经在 C 和 C++ 社区引起警觉。资深的 C 和 C++ 开发者们还没有准备好放弃,即便这种情况可能发生。

然而,Prossimo 项目(几年前启动,旨在"将互联网的安全敏感软件基础设施转向内存安全代码"并"改变人们对内存安全的认知")所推动的未来,预示着 C 和 C++ 开发者的机会将越来越少。

本周早些时候,Aas 明确表示,那些优先考虑内存安全的人希望看到 C 和 C++ 退休,尽管普遍认为 C 和 C++ 还会存在多年并需要维护。

Aas 在一篇文章中写道:"许多最关键的软件漏洞都是 C 和 C++ 代码中的内存安全问题,虽然有一些降低风险的方法,包括模糊测试和静态分析,但内存安全漏洞仍然困扰着互联网。好消息是,除了少数必须用汇编语言编写的代码(例如加密程序)之外,我们知道如何完全消除内存安全漏洞:用不允许这类错误的语言编写代码。这是一个基本已解决的研究问题,因此我们不需要再继续受这种问题的困扰。它可以像天花一样被relegat到过去,我们只需要去做这项工作。"

从癌症到天花的比喻来看,Linux 和 Rust 社区似乎仍有一些问题需要解决。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OQ5FrDi_q14RQtV1mDTcKYbw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券