Linux 内核中的 Rust:风波乍起,未来可期

🎉 引言:33 年的积淀,新的语言之争
Linux 内核自 1991 年问世以来,已经走过了 33 年的风雨历程。作为全球最流行的开源操作系统之一,Linux 在技术社区中享有至高的地位。然而,伴随着 2022 年 Linux 内核宣布引入 Rust 语言,这一平稳的发展轨迹忽然掀起了一场新的风波。Rust 语言的引入是否会彻底改变 Linux 内核的未来?这场 "Rust 之争" 究竟会如何演变?我们不妨通过 2024 年维护者峰会的讨论,一探究竟。


🚀 Rust 的引入:技术发展还是社区内部分裂?
自从 Rust 被引入 Linux 内核以来,讨论声不断。尤其引发关注的是 Rust for Linux 项目的核心维护者 Wedson Almeida Filho 的退出。他直言不讳地表达了对社区中技术之外争论的厌倦,尤其是围绕 Rust 和 C 语言的争论。Wedson 的离开仿佛为这场语言之争添了一把火,甚至有人认为 Rust 的引入分裂了 Linux 社区。对此,连 Linus Torvalds 也感到疑惑:“为什么现在还有这么多人对 Rust 产生如此大的争议?”

面对这种局势,Linux 内核维护者们在 2024 年的维护者峰会上展开了深入讨论。Miguel Ojeda 和 Linus Torvalds 纷纷现身回应,试图厘清 Rust 在内核中的现状,并探讨是否是时候将其从“实验性项目”转变为更正式的内核组成部分。


💡 灵活性需求与期望分歧:核心 API 的调整
Miguel Ojeda 在峰会上首先提到了内核子系统维护者需要展现的灵活性。两年前,在首次引入 Rust 支持时,他曾指出,由于 Rust 的特性,某些核心 API 需要修改以融入 Rust 代码。如今,这种灵活性变得更加重要。

他还提到,社区对于 Rust 在内核中的期望存在明显分歧。有些开发者和公司希望看到 Rust 在内核中取得成功,但对其未来发展仍存疑虑。Jason Gunthorpe 表示,尽管 Rust 的引入是为了展示其在内核中的可行性,但他仍在等待明确的信号,证明其成功。


⚙️ 工具与支持:编译器、驱动与子系统的挑战
Rust 的引入不仅仅是语言的替换,还涉及到工具链和子系统的支持。Arnd Bergmann 提出了一个关键问题:“何时才能使用发行版自带的 Rust 编译器来构建内核代码?” 对此,Ojeda 回答道:“内核代码现在支持多个编译器版本,许多社区导向的发行版已经提供了合适的编译器。”

但是,问题远不止于此。Greg Kroah-Hartman 提到,Rust 开发者主要集中在设备驱动程序的开发上,由于驱动程序需要与许多其他子系统交互,大量支持代码需要合并,这也使得进展看似缓慢。


🧑‍💻 开发者的困惑与支持:谁来修复破坏的代码?
随着 Rust 在内核中逐渐扩展,开发者们也面临着新的挑战。Will Deacon 问道:“Rust 社区是否在为内核开发者提供足够的支持?” Ojeda 回应道,他正在组建一个专家团队,其中一些成员是 Rust 的核心开发者,虽然他们缺乏深厚的内核经验,但可以帮助审核补丁和代码。

Linus Torvalds 也指出,目前内核中的一些特性与 Rust 不兼容,这阻碍了 Rust 的支持进程。例如,modversions 模块版本控制就是当前的一个挑战。尽管如此,阻碍特性的列表正在缩短,未来阻碍 Rust 的障碍会越来越少。


📉 管理期望:Rust 社区的耐心与现实
Dan Williams 提到,新的功能合并到内核中需要时间。他曾用两年时间才让一个新的 mmap() 标志被合并。他认为,Rust 社区在这方面需要管理期望,合并 Rust 代码是一个缓慢的过程。

Ted Ts'o 也表达了类似的观点。他认为,Rust 开发者一直在避免吓到内核维护者,很多人认为只需要学一点点 Rust 就能上手,但实际情况远比这复杂。文件系统抽象涉及到复杂的锁定规则,开发者需要详细的文档和教程来帮助他们用 Rust 编写文件系统代码。


🔧 未来展望:Rust 在 Linux 内核中的生产级应用
Linus Torvalds 对 Rust 的未来发展持乐观态度,但也坦言目前内核中的任何功能都不依赖 Rust,短期内也不会依赖。他强调,现在的重点是向前推进,开发者们应该全速前进,不必过于担忧细节问题。Torvalds 表示:“只要能让功能正常运行就足够了。一旦用户开始依赖 Rust 代码,才需要更细致地处理这些问题。”

Thomas Gleixner 认为,Rust 开发者在记录文档方面非常认真,他不担心重构代码的问题。即便遇到不理解的地方,他也可以像处理 C 代码一样,直接发邮件询问开发者。


总结:耐心等待,Rust 的未来可期
对于 Linux 内核中的 Rust 项目,Linus Torvalds 和维护者们一致认为,Rust 进入生产环境是不可避免的,但这个过程需要数年时间。尽管目前还存在许多技术挑战和社区分歧,但随着 Rust 在内核中的逐步推进,未来的 Linux 内核必然会变得更加安全和高效。

如 Linus 所言:“Rust 已经部分集成到内核两年了,这不算什么。用 Clang 构建内核的项目花了十年,而那还是用的同一种语言。” 未来几年,Rust 的发展值得期待,Linux 内核的前景也将更加广阔。


📚 参考文献

  1. Jonathan Corbet, "Committing to Rust in the kernel", LWN.net, September 24, 2024.
  2. Wedson Almeida Filho, "Rust for Linux: Why I Left", Personal Blog, 2023.
  3. Greg Kroah-Hartman, "Linux Kernel Development", O'Reilly Media, 2022.
  4. Linus Torvalds, "The Future of Linux Kernel", Open Source Summit Europe, 2024.
0 0 投票数
Article Rating
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x