前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 之父炮轰 C++ 是“一门很烂的语言”;Linux版本5.14可能添加对Rust的支持

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

作者头像
CloudBest
发布2021-05-07 15:46:16
1.4K0
发布2021-05-07 15:46:16
举报
文章被收录于专栏:CloudBestCloudBest

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’对操作系统内核有好处,而是说它在大多数其他情况下很好。”

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字科智 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档