写点什么

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:356205

评论

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

一个比Postman好用的工具,不试一下?

Liam

前端 后端 Jmeter Postman swagger

Java面试题总结(附答案)

爱好编程进阶

Java 面试 后端开发

【二级等保】二级等保需要做日志审计吗?

行云管家

等保 日志审计 等保2.0 二级等保

从安全和不安全两个角度,教你如何发布对象(含各种单例代码)

华为云开发者联盟

安全 线程 高并发 发布对象 对象溢出

确定还不来看看?这样管理你的代码库既方便又省心!

Jianmu

开源 持续集成 工作流 代码管理 workflow

Envoy熔断限流实践(一)基于Rainbond插件实现熔断

北京好雨科技有限公司

Kubernetes PaaS envoy rainbond

JDK、JRE、JIT

爱好编程进阶

Java 面试 后端开发

Go能实现AOP吗?

捉虫大师

Java Go aop 4月月更

FTP指的是什么协议?由什么组成?有什么作用?

行云管家

运维 网络协议 服务器 ftp

车联网通信安全之 SSL/TLS 协议|车联网系列专题 06

EMQ映云科技

车联网 物联网 IoT ssl emq

打基础丨Python图像处理入门知识详解

华为云开发者联盟

Python OpenCV 图像处理 图像 二值图像

Java流程控制语句-分支结构(选择结构)

爱好编程进阶

Java 面试 后端开发

数字化赋能塑化产业,B2B电商模式引领企业增长新引擎

数商云

产业互联网 数字化转型

IndexedDB 代码封装、性能摸索以及多标签支持

网易云信

JavaScript 数据库

天翼云战略发布“5G+天翼云+AI”三生万物 赋能5G时代数字化转型升级

天翼云开发者社区

在Redis中使用Pipelining提升查询速度

CRMEB

服务可用性成险企智能运维关键破局能力,博睿数据APM下场助力

博睿数据

高层次人才一站式服务平台开发 人才综合服务平台系统

a13823115807

银行应构建主动式客户体验管理体系,助力客户价值增长

易观分析

银行 客户体验管理

数据库性能优化方案

五分钟学大数据

4月月更

如何应对“科技人才热”?华为云联合慧科集团加速培养模式创新

华为云开发者联盟

教育 华为云 高校 华为云路网数字化服务 慧科

厉害了!天翼云电脑开启5G商用第一站

天翼云开发者社区

Java并发之Condition详解

爱好编程进阶

Java 面试 后端开发

啃论文俱乐部的团队之道和成长之路

PaperResearch

开源 OpenHarmony 啃论文俱乐部 技术自由

蕉下招股书里提了26次的DTC,到底是啥?

易观分析

DTC

Java树结构实际应用(平衡二叉树-AVL树)

爱好编程进阶

Java 面试 后端开发

TASKCTL 作业调度节点数超规格处理方法

敏捷调度TASKCTL

开源 DevOps 分布式 方法论 敏捷开发

中国云终端市场发展报告发布天翼云稳居领导者地位

天翼云开发者社区

案例 认证

Java基础知识点总结

爱好编程进阶

Java 面试 后端开发

旺链周 | 我们的价值观,我们来代言

旺链科技

区块链 活动 价值观

你真的了解IT资产管理系统(ITAM)吗?

低代码小观

资产管理 企业管理系统 CRM系统 企业管理工具 资产安全

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