欢迎光临散文网 会员登陆 & 注册

谁这么强?前有亚马逊、Google支持!后有Linux将它加入内核开发!

2021-04-17 16:59 作者:C语言编程__Plus  | 我要投稿

有一门编程语言 2015 年才上线,而在这 6 年中,前有亚马逊赞助开发,后有谷歌宣布在 Android 中支持,现在 Linux 也要将它加入内核开发,可谓名副其实的“大厂团宠”。 

你猜这是哪个编程语言?答案是: Rust !

上个月,Linux 公布 Linux-Next 初步支持 Rust 后,引发众多热议,Linux 之父 Linus Torvalds都表示 对 Rust 进驻 Linux 内核“保持观望” 。 

而本周,Linux 内核开发者 Miguel Ojeda 在邮件列表中发布的一封邮件再次成为焦点: 在 Linux 内核中添加 Rust 支持的 RFC。 


文章整理 |CSDN: 郑丽媛

出品 | CSDN(ID:CSDNnews)


这封邮件较为冗长,除了 发布一些用 Rust 编写的 Linux 内核补丁,还 将“Linux 内核支持 Rust”这一决定的利弊和开发者的担忧都进行了说明,其中包括: 

Linux 内核开发者对引入 Rust 的决心 :明知在内核中加入第二种语言会付出更多努力,甚至一旦不再支持 Rust,用 Rust 编写的模块将更难替换。尽管如此,他们还是认为引入 Rust 的优势比成本大;

在 Linux 中加入 Rust 的目的 :降低内存安全 Bug 和逻辑 Bug 等风险、作为现代编程语言的 Rust 使新的驱动程序和模块更容易编写、将有更多人参与 Linux 内核开发等;

内核环境下,Rust 相较于 C 的优势 :更严格的系统可减少逻辑错误、安全代码和不安全代码之间区别明显、广泛的独立标准库等;


同样,加入 Rust 也存在一些缺点 :目前的 Linux 内核更适应 C 语言、 对 LLVM 的依赖 、编译速度较慢等由于 Rust 是一门年轻的编程语言引发的问题,不过都有改善的余地。

此外,邮件中也说明到目前为止,在基于 x86_64、ARM64 和 PPC64LE 的 Linux 内核中,基础设施已经为支持 Rust 做好准备,其它架构和 对 Rust 内核支持的构建 也在逐步完善。

详细邮件内容可查看:https://lkml.org/lkml/2021/4/14/1023 

Linux 之父:并不讨厌

对于这封邮件的内容,大部分人都表示支持, Linus 也再次对此表达了一些看法。虽然他对 Rust 进入 Linux 内核还有一些技术上的顾虑,尤其是担忧“ 某些 Rust 配置可能导致死机 ”这个问题,但 大体上“并不讨厌” 。 


他还补充道,比起 当前的基本模块 ,他更希望看到一些真实的 Rust 示例 作为 提案的一部分,这样人们可以把它作为真正的代码片段来做一些有意义的事情。 

谷歌:大力支持 

而前阵 子刚宣布 Android 支持 Rust 语言来开发操作系统 的 谷歌对 Linux 内核引入 Rust 代码也表示大力支持 (之前谷歌还加入了 Miguel Ojeda 成立的 Rust for Linux 组织) ,谷歌 Android 团队工程师 Wedson Almeida Filho 在官方安全博客上 发表了一篇有关此事的文章。


博文中指出,虽然近半个世纪以来,C 语言一直是编写内核的首选语言,但在高质量代码、高标准审查以及完善的防护措施下,内存安全漏洞仍然经常发生。而对 Android 来说, 内核漏洞 通常被认为是高危漏洞。

因此,谷歌表示:"我们认为,Rust 现在已经准备好与 C 语言共同成为开发内核的实用语言。它可以帮助我们减少特权代码中潜在的 Bug 和安全漏洞,同时 很好地处理核心内核并保持其性能特征 。"

此外,文中还详细介绍了 一些 Rust 如何帮助内核开发者编写安全正确的驱动程序的示例 ,并且将其与现有的 C 语言版本在安全和性能方面进行对比。谷歌 几乎将 Binder 所需的所有通用内核功能都进行了 Rust 支持,因此 正在收集更为广泛的 Linux 内核社区反馈,争取将现有的 Rust 支持上游化。 

最后, Fil ho 对 Linux 内核加入第二个编程语言表示期待:“ 这是一个激动人心的时刻,也是一个难得的机会,这可能会影响 Linux 内核的开发方式,同时也预示着 Rust 语言的发展趋势。 ” 


网友:Linus 实际是支持 Rust 进入内核的 

对于谷歌的正面支持与 Linus 的较为中立的态度,网友也进行了热议。

网友@bug77表示 :

“虽然 Linus 对 Rust 还有些顾虑,但他实际上是支持在 Linux 内核中加入 Rust 的,因为在现阶段有担忧很正常。

此外,目前的讨论并不是要把 Rust 包含在内核本身,而是包含在内核驱动程序中。有问题的话可以随时方式,损害很小。 

C 在未来 10 年到 20 年内 都不会 消失,但看看 Rust,很明显它已经从一种狂热者喜爱的语言发展成为大型公司开始评估的一种语言。”


网友@ssokolow :

“ 就隐式触发的复杂行为而言,Rust 更像是C 和 C++ 之间的中间地带。 ” 


目前看来,Linux 5.13 发布在即,并且结合 Linus 起初对 Rust 的谨慎态度,在这个版本中引入 Rust 相关特性 的可能性不大。不过不排除未来发展顺利的话, 或许我们能在 Linux 5.14 中看到对 Rust 的支持。不过这还需要一段时间,在Rust正式被支持之前,C/C++在编写计算机内核方面具有不可撼动的位置!

有句话是这么说的:栽一棵树最好的时间是十年前,其次是现在。对于学习编程或者正在工作的朋友,如果你想更好的提升你的编程能力帮助就业乃至转行,弯道超车,快人一步!笔者这里或许可以帮到你~

微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!



谁这么强?前有亚马逊、Google支持!后有Linux将它加入内核开发!的评论 (共 条)

分享到微博请遵守国家法律