Linux 之父炮轰 C++ 是“一门很烂的语言”;Linux版本5.14可能添加对Rust的支持

2021-05-07 15:46:16 浏览数 (1)

Linus Torvalds声称:“C 没有解决C的任何问题,只是使情况变得更糟。这确实是一门很烂的语言。”

Linux内核中针对Rust支持的第一批补丁已发布;内核背后的大佬Linus Torvalds表示,讨论这些方面比谷歌近日关于Rust语言撰写的一篇长文重要得多。

针对Rust支持功能“尚未到位”这一话题,Linus Torvalds这样告诉iTWire网站。他补充道:“Rust支持功能可能会被并入到5.14或之类的版本。”

5.12内核分支的第六个发行候选版已在4月的第一周推出。每个点版本(即次要版本)通常发布八次、每周一次,在最终发布之前还需要两周。这意味着5.14需要一段时间才会推出。

谷歌的文章(https://security.googleblog.com/2021/04/rust-in-linux-kernel.html)由谷歌Android团队的Wedson Almeida Filho撰写,指出Android现在支持Rust用来开发这款操作系统本身。

他写道:“我们还参与了评估使用Rust作为开发Linux内核的一门受支持语言的工作。在本文中,我们使用几个简单的示例,讨论这项工作的一些技术方面。”Android使用修改后的Linux内核。

试图将Rust引入Linux的Miguel Ojeda在4月14日的一则帖子(https://lore.kernel.org/lkml/20210414184604.23473-1-ojeda@kernel.org/)中写道:“你们中一些人已注意到在过去几周和几个月,已开展了努力将第二门语言引入到内核的工作。我们终于走到了这一步,而且有为Linux内核增加Rust支持功能的请求注解(RFC)。”

他概述了该项目的几个目标,如下所示。

通过在Linux内核中使用Rust,我们的希望是:

  • 由于下面提到的语言特性,用Rust编写的新代码总体上降低了内存安全性bug、数据争用和逻辑bug的风险;
  • 由于Rust的安全子集,维护人员对重构和接受模块补丁更有信心。
  • “新的驱动程序和模块变得更容易编写——这归功于抽象更易于推理,基于现代语言特性,并辅以详细的说明文档;
  • 由于使用了现代语言,更多的人总体上参与内核的开发;以及
  • 通过充分利用Rust工具,我们继续执行迄今为止在项目中确立的说明文档指导原则。比如说,我们要求将所有的公共API、安全先决条件、‘不安全’块和类型不变量都记入文档。

Torvalds表示,对Rust的支持目前仍处于早期阶段,“但至少‘开展了这种工作,有了例子,我们可以在上面构建’。”

有人在Linux Weekly News网站上讨论谷歌那篇长文时提议:“这里的解决办法很简单:只要使用C 而不Rust”,Torvalds忍不住大笑。

他回答:“太搞笑了。C 没有解决C的任何问题,只是使情况变得更糟。这确实是一门很烂的语言。”

“至于不喜欢C的人,请使用一门实际上可以为您提供价值的语言。比如拥有内存安全性、可以避免C一些弊端的语言,或者是内部支持GC(垃圾收集)、并简化内存管理的语言。”

“C 解决了所有不该解决的问题,任何说‘用C 重写内核’的人实在太无知了,连这一点都不知道。”

他说,人们谈到C的弊端时,也谈到了使C如此强大的部分原因,“让您可以高效实现所有那些低级的机制。”

Torvalds补充道:“虽然我认为GC(垃圾收集)对于确保编程简洁性是很了不起的技术,但它通常未必是你在低级系统编程中可以做到的。因此,我不是说‘集成的GC’对操作系统内核有好处,而是说它在大多数其他情况下很好。”

0 人点赞