导读:可以确定的是,Rust正在进入Linux生态,内核开发者Linus Torvalds与Greg Kroah-Hartman已经在商讨Rust与Linux协同之处。

众所周知,Linux是C语言的代名词。但是时代在变化,Rust语言或正在成为Linux系统中支持语言之一。

 

在2020的Linux Plumbers 大会上,Linux的内核开发者们与Rust语言团队一起讨论将Rust用于新的Linu内部代码中的议题。

 

从20019年9月开始,担当Linux内核维护者的Greg表示愿意接受用Rust开发linux驱动程序,直到2020年7月,Linus Torvalds回应称可以默认启用Rust支持。

 

目前Linux系统中已经有大量的Rust被推向市场。AWS用于容器的Bottlerocket Liux,其中已经大量包含Rust。

 

Sylvestre Ledru,他白天是Mozilla的经理,晚上是Debian Linux的开发人员,他已经将Rustutil版本的Coreutil移植到了Linux。Coreutil是GNU Shell的核心应用程序。

 

Rust为何如此流行?这是因为它编写安全软件更容易。Rust能够确保线程安全,防止内存污染等相关的错误,避免缓冲区溢出等安全性问题。可以通过Rust提供更安全的API来开发这些应用。

 

有数据表明大约有三分之二的Liunx内核漏洞来自内存的安全性问题.

 

Linux内核开发者Nelson Elhage在Plumbers上这样补充道:Linux虽然开始支持Rust,但并不是提议将Linux内核用Rust重写;他们只是专注向编写新代码世界的可能迈进。Rust支持的三个方向是利用现有内核的API,提供体系结构支持,处理Rust与C之间应用程序的二进制接口(ABI)之兼容性。

 

请看下图真相:

 

Torvalds此时出现了。他一直在“等待和观察”阵营中,现在他发话了:我对该项目十分感兴趣,我认为它是由对Rust感兴趣,且非常兴奋的人们推动的,我非常想看看它最终如何在实践中发挥作用。

从个人而言,Torvalds 肯定不会“挤兑”Rust,考虑到要避免一些安全隐患,能够达到承诺的优势 ,我愿意接受它,但我也知道有时候诺言不一定会兑现。

 

Torvalds同志认为,Rust的首要目标是驱动程序,内核的各个部分小且独立,这可能并不是最有趣的目标。

 

Kroah-Hartman同意驱动程序可能是尝试Rust的第一步,这些是内核源代码依赖树的“末端叶子”。它们依赖于内核功能,但内核并不不依赖Driver。

 

Torvalds 知道有一些人们也不喜欢把Rust放在用户空间中。内核与用户空间项目有一些不同之处,在某些方面,我们使用很多奇怪的头文件,但它可以将C的边界延伸。而内核是相当独立的,可以不依赖于其它项目。

 

Kroah-Hartman发表了一些观点,他认为将用C编写的内核架构与生命周期规则之间的交互映射到Rust结构与生命周期中。开发Rust的驱动需要开发人员大量认真细致的工作,祝愿他们一切顺利。

 

在Linux中,将C移植到Rust要花一些时间,这些包括Rust的用户空间程序、驱动程序以及基于Rust的Linux内核。

 

当然,这一举动会引起更多想使用Rust的人的兴趣,还有大量行动,让我们试目以待。

 

作者:万能的大雄
来源:21CTO