查看原文
其他

Torvalds考虑将Rust加入Linux内核支持

为开发者服务的 21CTO 2022-05-25

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


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


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


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


目前Linux系统中已经有大量的Rust被推向市场。AWS用于容器的Bottlerocket Linux,其中已经大量包含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


相关阅读:


顶级编程语言之对比:Rust VS Go

RedMonk 编程语言排行榜:Rust取代Hackell,进入前20名

Oracle发布Java 15,希望数百万人离开Rust、Kotlin等语言


关于21CTO

21CTO.com是中国互联网第一技术社交与学习平台。为CTO、技术总监,技术专家,架构师、技术经理,高级研发工程师、PM等提供学习成长,教育培训,工作机会、人脉影响力等产品,同时为企业提供人才招聘,企业培训,软件开发等服务。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存