云网牛站
所在位置:首页 > Linux新闻 > Linux创始人表示不会用C++语言来重写Linux内核,附相关详情

Linux创始人表示不会用C++语言来重写Linux内核,附相关详情

2021-04-20 11:55:22作者:linux人稿源:开源中国社区

有人建议应该用 C++ 语言来重写 Linux 内核,对此,Linux 创始人 Linus Torvalds 的态度是不可能这样做,他认为那些提议用 C++ 重写 Linux 内核的人都太无知了,不过 Rust 倒是很有希望成为主流的 Linux 内核编程语言(参考:Linux内核有可能从现在的C语言移植到Rust语言中,附相关新闻)。以下是相关的新闻介绍。

 

新闻内容

科技外媒 ITWire 报道了对 Linus Torvalds 的采访。关于 Linux 内核对 Rust 的支持情况,Linus 回应称“Linux 内核尚未支持 Rust 语言”,并补充说“目前相关工作正处于开发阶段,预计 Linux Kernel 5.14 会合并相关补丁”。当然,Linus Torvalds 已经很明确的坦言,对 Rust 的支持目前还处于早期阶段,但至少已经提供了供其发展的基础,因为相关的代码或会合并到 Linux 5.14 Kernel 的 Mainline 版本中。尽管如此表态,但业内人士指出,Linux 内核整合 Rust 语言代码这事将是确定的,因为它的呼声较高,其优势也比较明显,没有理由去拒绝。

Linux创始人表示不会用C++语言来重写Linux内核,附相关详情

Linus 表示,Linux 内核对 Rust 的支持尚处于早期阶段,不过至少开展了相关工作,有了示例,他们可以在此基础上进行构建。

ITWire 向 Linus 提到了有人在 LWN 上评论了谷歌那篇关于在 Linux 内核中使用 Rust 开发的长文,评论中有人认为应该使用 C++ 而不是 Rust。

Linux创始人表示不会用C++语言来重写Linux内核,附相关详情

对此,Linus 忍不住大笑(原文中他的反应是"LOL"),原因是他认为 C++ 并没有解决任何 C 的问题 (C++ solves _none_ of the C issues ),反而让事情更糟糕,这是一门很烂的语言 (It really is a crap language)。

Linus 表示,如果你不喜欢 C 语言,那么可以去选择一门能真正给你提供价值的语言。比如具有内存安全和可以避免 C 语言的一些弊端,或者是支持内部 GC 并更容易管理内存的语言。

Linus 认为 C++ 解决了所有不该解决的错误问题,那些说用 C++ 重写 Linux 内核的人都太无知了。

 

用户点评

C++ 很多东西都需要隐式内存分配的,内核不能随便就 malloc。rust 一个 no_std 就把内存分配关掉了,Linux 里的 rust 库也不会用标准的 rust alloc 库,而是禁用了所有不带错误处理的内存分配函数,这样即使没有内存了也不会 panic!,而是返回 Err。

 

Rust 的呼声很高,连 Google 都发声了

Google 发声支持将 Rust 引入 Linux 内核的消息引发开源社区关注,虽然这应该不会让人感到意外,尤其是考虑到最近谷歌允许 Rust 用于 Android 系统级代码的消息。现在,这家搜索巨头的工程师们现在开始支持 Rust 代码在 Linux 主线内核内使用。

除了近期 Linux 内核的 Rust RFC 和 Linux 内核邮件列表上仍在进行的那场讨论外,Google 安全博客上的 Google 工程师也就此事写下了自己的意见。

"我们认为,Rust 现在已经准备好加入 C 语言,成为实现内核的实用语言。它可以帮助我们减少特权代码中潜在的 bug 和安全漏洞,同时与内核也配合得很好,可以很大程度上保留其性能特性。"博文中指出。

博文还详细介绍了内核的 Rust 样本驱动,谈到了他们在 Rust 中设计 Binder 原型的工作等等。

"这是一个激动人心的时刻,也是一个难得的机会,可能会影响 Linux 内核的开发方式,并为 Rust 语言的进化提供信息。"

 

相关主题

建议使用Rust编写Android系统代码,附改用Rust后的优势说明

精选文章
热门文章