写点什么

Linux 迎来重要转折点!Rust 驱动将全面进军内核核心

  • 2024-12-03
    北京
  • 本文字数:2241 字

    阅读完需:约 7 分钟

大小:983.43K时长:05:35
Linux迎来重要转折点!Rust驱动将全面进军内核核心

11 月 30 日,除了之前合并到 Linux 6.13 内核开发窗口的 USB 更新和大型 staging 分支更新外,“char/misc”模块的更改也被采纳。作为内核中汇总各种改动的模块,“char/misc”合并中引入了一些重要更新,这对希望用 Rust 编程语言编写内核驱动的开发者来说尤其值得关注。

 

 Linux 内核关键维护者 Greg Kroah-Hartman 表示,随着这些改动的引入,Linux 6.13 现在可以支持更多基于 Rust 的内核驱动开发。

 

在“char/misc”合并中,他解释道:“Rust 中的 misc 驱动绑定和其他改动使得开发 misc 驱动成为可能。我认为这是一个转折点,有了这些绑定,未来会有更多 Rust 驱动出现。希望在下一个合并窗口中,我们能够实现 PCI 和平台驱动的功能,从而全面支持几乎所有驱动子系统接受(或至少尝试使用)Rust 驱动。这是许多开发者共同努力的成果,祝贺大家取得这样的进展。你们用可运行的代码证明了我们许多人的质疑是错误的 :)。”

 


这位资深内核开发者预测,未来我们将看到越来越多的上游 Rust 驱动程序。

 

辞职风波是“黎明前最黑暗的时刻”

 

除了“char/misc”子系统,Rust for Linux 项目负责人 Miguel Ojeda 还于 11 月 26 日提交了一组针对 Linux 6.13 holiday kernel 内核的大规模 Rust 基础设施和工具链更新,一夜之间让 Linux 增加了 3000 行 Rust 代码。

 

Linux 6.13 的合并窗口预计将于今天(12 月 1 日)结束,同时发布 Linux 6.13-rc1。Linux 6.13 正逐步成为一个重要的内核版本,稳定版本预计将在 1 月底左右发布。

 

从这次版本发布中,我们可以得出两个重要信息:一是 Greg Kroah-Hartman 承认,包括他在内的部分人曾质疑 Rust,但这是“错误”的,他认为 Rust for Linux 维护者用实际可行的代码证明了 Rust 在内核开发中的潜力。二是尽管此前 Rust for Linux 维护者宣布退出内核开发,但实际上,将 Rust 代码引入 Linux 的进展并未受到太大影响。

 

今年 9 月份的时候,微软工程师、 Rust for Linux 维护者之一 Wedson Almeida 在 Linux 内核邮件列表上宣布退出该项目。他离开的原因是,“在过去四年的工作当中,我发现自己的精力和热情已经被严重消磨,越来越抗拒回应那些跟技术无关的废话。所以这份任务,最好是留给那些仍然抱有这份热情的成员。”

 

C 和 Rust 两派的分歧一直很大。一些现有的 C 语言程序员对 Rust 作为第二语言的引入持抵触态度,担心这会增加他们的工作复杂性,或迫使他们学习 Rust 而感到压力。英特尔 Linux 核心内核架构团队成员 Dan Williams 也曾指出,Rust 在 Linux 内核中的应用面临一个问题:“内核维护者往往非常保守。” 他们对 C 语言非常熟悉,可以说了如指掌,但对 Rust 却并不了解。因此,他们“不知道该如何审查这些代码,也不知道如何调试那些代码,因为他们并不理解这些代码。”

 

在 Linux 缔造者 Linus Torvalds 看来,这场争议“几乎上升到了带有宗教战争色彩的信仰之争层面”。而对于不少人因此断言 Rust 的融合之路已经失败的观点,Linus 评论道,“我们已经在这方面探索了几年,所以目前下结论还为时过早。但我也认为,哪怕是失败了(虽然我并不支持这种失败论),这也是学习经历的一部分。所以我觉得推广 Rust 是有积极意义的,可争论过程中的很多人似乎并不这么看。”

 

作为 Rust for Linux 项目的首席维护者,Miguel Ojeda 则将 Wedson 的辞职描述为该项目“黎明前最黑暗”的时刻。

 

“对我来说,这当然非常困难,”Ojeda 表示,“但从积极的角度看,这或许是黎明前最黑暗的时刻……我想向大家保证,项目正在继续前进。”

 

将 Rust 融入 Linux 曾是一些人的“白日梦”

 

不久前,Miguel Ojeda 在 RustConf 2024 主题演讲中回顾了 Rust for Linux 项目的历史。

 


早在 2013 年就有人提出了为内核编写 out-of-tree Rust 模块的想法,那时 Rust 还未正式发布 1.0 版本。然而,Rust for Linux 并不仅限于 out-of-tree 模块的开发,其目标是将 Rust 的支持集成到 Linux 主线中,使其能够用于 C 能完成的所有内核任务。值得说明的是,一般情况下,稳定且常用的驱动都是 in-tree 的,它们位于内核源代码树的对应目录下。

 

2019 年夏天,Miguel Ojeda 创建了 Rust for Linux GitHub 组织,但直到 2020 年才真正投入使用。同年 7 月,Nick Desimone 发起了一封关于对 Rust 感兴趣的邮件,随后大家意识到有不少人希望这件事能够成真。

 

“那时,这仍然只是一个白日梦”,但 Miguel Ojeda 认为让大家在同一目标下独立工作会很有意义,于是他提交了第一个 Rust 拉取请求,后来越来越多的人加入了这个项目。经过多次协作,最终在两年后,Rust 支持被合并至内核的 6.1 版本。

 


Rust for Linux 旨在为 Linux 内核引入对 Rust 编程语言的支持,目标是实现对 Rust 的一流支持,即在内核中任何可以用 C 实现的功能都可以用 Rust 实现。

 

他们的最终目标并不仅仅是 out-of-tree 模块,而是 in-tree,以及用 Rust 编写核心 API 和子系统,这不仅限于内核空间代码,还包括宿主和用户程序。

 

Miguel Ojeda 强调项目的关键目标一直都是“将这些支持集成到主线内核中”。并且就像他之前总结的那样:“Rust 现在处于有利地位。”

 

参考链接:

https://www.phoronix.com/news/Linux-6.13-char-misc-More-Rust

https://devclass.com/2024/09/18/rustconf-speakers-affirm-rust-for-linux-project-despite-challenges-of-unstable-rust-maintainer-resignation/

https://www.youtube.com/watch?v=FRMJzNYut4g

https://www.zdnet.com/article/rust-in-linux-now-progress-pitfalls-and-why-devs-and-maintainers-need-each-other/

 

2024-12-03 11:356243

评论

发布
暂无评论
发现更多内容

macs fan control pro破解版序列号 mac电脑风扇控制 v1.5.17中文版

Rose

苹果电脑 风扇转速控制 Macs Fan Control Pro

2023 年已知被利用最多的十大CWE漏洞排名

华为云PaaS服务小智

软件开发 华为云

如何使用低代码+定制,打造一个个性化的社交媒体平台?

天津汇柏科技有限公司

低代码 定制软件开发 软件开发定制

Seal 新春大挑战等你来参与!

SEAL安全

AI DevOps Walrus

部署Palworld幻兽帕鲁服务器最佳实践(Ubuntu)

天翼云开发者社区

云计算 最佳实践 服务器 云服务器

有了ERP和MES,还需要质量管理QMS系统吗?

万界星空科技

数字化 生产管理系统 mes 万界星空科技 QMS

千万级数据深分页查询SQL性能优化实践-京东零售技术团队

京东零售技术

Java MySQL 后端

安卓动态链接库文件体积优化探索实践

京东科技开发者

KubeEdge v1.16.0 版本发布!10项新增特性

华为云开发者联盟

k8s 开发 华为云 kubeedge 华为云开发者联盟

测试开发+人工智能大礼包,让你在假期实现弯道超车

测试人

软件测试

大文件上传原理及实现方案 | 京东物流技术团队

京东科技开发者

通义灵码——灵动指间,快码加编,你的智能编码助手

阿里巴巴云原生

阿里云 云原生

SublimeText中文破解版 简单易用的代码编辑器

Rose

代码编辑器 SublimeText

wrk压测

4份报告简读Java生态

4ye

JVM, Java’

这篇深入浅出贴 助你早日实现Stable diffusion自由

京东科技开发者

迎龙年接新春,来华为手机里寻找祥龙

最新动态

全新 Amazon S3 Express One Zone 高性能存储类服务,震撼发布!

亚马逊云科技 (Amazon Web Services)

Wireshark中的http协议包分析

小齐写代码

中文版3d lut creator pro调色软件下载 兼容M1

Rose

Mac软件 3d lut creator pro 调色

高效率软件开发工具,提速开发,真的很赞!

互联网工科生

软件开发 低代码 JNPF

OpenSPG新版发布:大模型知识抽取与快速知识图谱构建

百度开发者中心

人工智能 知识图谱 智能客服 大模型

WiFi 7/QCN9274: Connecting the super network of the future

wallysSK

100%中奖、会员回馈礼…星河会员新春福利到!

飞桨PaddlePaddle

百度 飞桨 飞桨AI 飞桨星河社区

假期想学习,送你测试开发+人工智能大礼包

霍格沃兹测试开发学社

探索大模型训练与多模态数据处理

百度开发者中心

人工智能 图像 大模型训练

IT工单治理野史:由每周最高150+治理到20+ | 京东物流技术团队

京东科技开发者

Microsoft Outlook将邮件、日历和联系人汇集一处,让你轻松管理一切

Rose

Office 邮件客户端 Microsoft Outlook

Bookends for Mac(文献书籍管理工具)v14.2.9注册激活版

Rose

自动化测试,有最佳实践吗?

老张

软件测试 自动化测试

Linux迎来重要转折点!Rust驱动将全面进军内核核心_操作系统_Tina_InfoQ精选文章