Rust 对内核的支持 Linux 遭到托瓦尔兹的批评

Linus Torvalds 审查了实现用 Rust 语言为内核创建驱动程序功能的补丁。 Linux并提出了一些批评意见。

最大的批评在于,panic() 函数可能会在一些错误的情况下触发,例如内存不足时,动态内存分配操作(包括内核内部的分配操作)可能会失败。Torvalds 指出,这种方法在内核中根本无法接受,如果这一点不被理解,他将彻底否决任何试图使用这种方法的代码。另一方面,负责修复此问题的开发者承认了这个问题,并认为它是可以解决的。

另一个问题是尝试使用浮点数或 128 位类型,这对于内核等环境来说是不可接受的。 Linux事实证明,这是一个更为严重的问题,因为 Rust 核心库目前是不可分割的,它是一个庞大的整体——它不允许用户仅请求某些特定功能,从而导致某些存在问题的功能无法使用。解决这个问题可能需要修改 Rust 编译器和库,而团队目前还没有在语言库中实现模块化的策略。

Torvalds 还指出,提供的驱动程序示例毫无用处,并建议提供一个能够解决实际问题的驱动程序示例。

更新:谷歌已宣布参与将 Rust 支持引入内核的计划。 Linux 并概述了使用 Rust 解决内存管理错误问题的技术可行性。谷歌认为,Rust 现在已经准备好与 C 语言一起成为开发内核组件的语言。 Linux文章还提供了使用 Rust 语言开发内核驱动程序的示例,并结合了它们在平台中的使用情况进行说明。 Android Rust 被公认为官方支持的开发语言 Android).

谷歌已经用 Rust 编写了一个用于 Binder 进程间通信机制的驱动程序初始原型,这将允许对 Binder 的 C 和 Rust 实现进行详细的性能和安全性比较。虽然这项工作尚未完成,但几乎所有 Binder 在 Rust 代码中使用这些抽象所需的内核抽象层都已经准备就绪。

来源: opennet.ru

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