• Rust代码进入Linux内核:争议中前行的未来
  • 发布于 2个月前
  • 255 热度
    0 评论
  • 秋萧索
  • 0 粉丝 57 篇博客
  •   
引言
自2022年Rust代码首次被合并到Linux内核以来,关于其引入的争议就从未间断。Rust语言因其出色的内存安全特性而备受赞誉,被许多政府和安全专家视为减少高风险内存漏洞的解决方案。对于是否应该在Linux内核中广泛使用Rust,社区内的意见却存在巨大分歧。本文将带你了解这场关于Rust与Linux内核的争论背后发生的故事,以及它对开源生态的潜在影响。

Rust进入Linux内核的争议
1. “混合语言代码库是癌症”?
一些Linux内核维护者对Rust的引入持强烈反对态度。核心开发者Christoph Hellwig曾在邮件中直言,混合语言代码库(即同时使用C和Rust)可能会导致不可控的复杂性。他形容这一做法如同“癌症”,并担心未来的维护者会因此不堪重负。Hellwig指出,C和Rust之间存在巨大的语义差异,要让两者互操作需要大量的“胶水代码”或绑定层。一旦这种绑定层扩散到不同的子系统中,可能会导致核心基础设施的多次重写,增加系统复杂性。

尽管如此,Rust for Linux项目仍在努力推进Rust代码的使用,并发布了所谓的“Rust内核政策”。不过,这一政策尚未被正式纳入内核代码树,也因此引发了社区对其有效性的质疑。

2. 支持者的声音:Rust是未来
与反对者不同,另一位核心开发者Greg Kroah-Hartman(Greg K-H)则对Rust的引入持支持态度。他认为,Rust能够解决C语言中常见的内存溢出、错误处理清理和使用已释放资源等问题,这些问题是当前Linux内核中漏洞的主要来源。Greg K-H指出,虽然C语言的改进工作仍在继续,但对于新代码和驱动程序,使用Rust可以显著减少此类错误,从而让开发者专注于更高层次的问题,比如逻辑错误和竞争条件。他认为Rust是未来的方向,并表示:“当有好的新想法出现时,我们必须向前迈进。”

3. 开源社区的挑战:维护者的倦怠
在这场争论中,另一个值得关注的问题是开源社区的“维护者倦怠”。Hector Martin(Asahi Linux项目的前负责人)因不满社区治理模式而辞去了维护者职位。他指出,Linux社区中一些子系统维护者会故意阻碍贡献者的工作,这种行为严重打击了开发者的积极性。此外,Martin还提到,开源维护者往往面临高强度的工作压力,却缺乏足够的认同和支持。Rust工程师Jynn Nelson也曾表示,Rust项目中因倦怠而离开的开发者数量令人震惊。

Sonatype的联合创始人Brian Fox在接受采访时提到:“开源开发者的倦怠问题正在以惊人的速度上升,这对软件供应链安全构成了威胁。”他呼吁,健康的软件生态需要社区的良性运作,而这离不开资金支持。

Rust与Linux内核的未来
尽管争论激烈,Linus Torvalds(Linux内核的创始人)似乎决心继续推动Rust代码的合并。Hellwig在邮件中透露,Linus曾私下表示,无论维护者是否反对,他都会合并Rust代码。这意味着,未来的Linux开发者将不得不面对混合语言代码库的现实。然而,这一决定是否能真正推动Linux内核的进步,仍有待时间的检验。

总结
Rust的引入为Linux内核带来了新的可能性,但也伴随着巨大的争议。支持者认为Rust可以提升内核的安全性,而反对者则担心混合语言代码库的复杂性会带来长期的维护问题。无论如何,这场关于Rust与Linux内核的争论,揭示了开源社区在技术选择和治理模式上的深层次矛盾。或许,这也是开源生态在不断发展中必须面对的挑战。

希望这篇文章能帮助你更好地理解Rust与Linux内核的现状与未来。如果你对Rust或Linux开发感兴趣,不妨深入了解相关技术,成为推动开源社区进步的一份子!
用户评论