大卫-拉加齐
我认为这是可能的,我希望 Modular 为那些开始这次冒险的人提供一些未来的支持。我之所以这样说,是因为总有一天,内核开发人员将需要 Mojo 中可能尚不可用的特定语言功能,例如直接内存操作(例如,指定向量应该是什么内存地址)等,这对于操作系统内核功能的开发至关重要。因此,Modular 可以通过“问题”部分优先考虑内核开发人员请求的这些功能。
顺便说一句,我相信一旦 Mojo 中的主要 AI 需求得到满足,Modular 就会支持这一点。即使因为设备驱动程序,甚至是在 Mojo 中开发的完整操作系统,对 Mojo 来说也是一个很好的广告,证明它确实是一种通用语言。许多像 C/C++ 这样的语言开发人员喜欢 Mojo 提供的这种安全快速的方法,会很想在其项目中尝试它。
在 Rust 中,这已经发生在 Redox OS 中,这是一个用 Rust 从头开始编写的完整操作系统:https://www.redox-os.org/
它的 FAQ 列出了使用 Rust 开发 Redox OS 的好处:
Rust 的好处
不太可能出现错误 限制性语法和编译器建议大大降低了错误
的可能性。
无需 C/C++ 漏洞利用缓解措施
用 Rust 编写的微内核设计可防止 C/C++ 内存缺陷。
通过将系统组件与内核隔离,攻击面非常有限。
在不显著影响性能的情况下提高了安全性和可靠性
由于内核很小,它使用较少的内存来完成其工作,并且有限的内核代码大小有助于使其接近无错误状态(KISS 目标)。
Rust 安全快速的语言设计,加上小内核代码大小,有助于确保内核的可靠性、高性能和易于维护。
线程安全
C/C++ 对线程安全的支持非常脆弱,很容易编写一个看起来可以安全地跨多个线程运行的程序,但它引入了微妙的错误或安全漏洞。如果一个线程访问一段状态的同时,另一个线程正在更改它,则整个程序可能会表现出一些真正令人困惑和奇怪的错误。
但是在 Rust 中,这种错误很容易避免,同样的类型系统可以防止我们编写内存不安全,从而阻止我们编写危险的并发访问模式
Rust 编写的驱动程序 用 Rust 编写的驱动程序
可能具有更少的错误,因此更安全。