查看原文
其他

第一个用Rust编写的Linux内核GPU驱动程序或将到来

出品 | OSC开源社区(ID:oschina2013)
Linux 上的 Apple M1 和 M2 支持 最大障碍之一是当前缺乏 GPU 加速,Asahi Linux 一直在对 Apple M 系列芯片的图形处理器进行逆向工程,早期实验在 macOS 和 Asahi  Linix 的 m1n1 环境下进行,下一步计划则是编写 Direct Rendering Manager (DRM) 内核驱动程序。
而据外媒 Phoronix 报道,Asahi  Linix 的核心开发者 Asahi Lina 正在探索用 Rust 编程语言编写该 DRM 内核 GPU 驱动程序的可行性。
Asahi Lina 在邮件列表中解释道:

我开始为 Apple AGX (针对 M1 和 M2 系列芯片) 开发一个新的内核 GPU 驱动程序。

这些 GPU 运行固件并具有相当复杂的共享内存数据结构,需要由主机管理,因此我一直倾向于 Rust,它具有安全性、更好的元编程和通用表达能力。

我有一个用 Python 编写的原型驱动程序,但更高级的语言对于对 GPU 进行逆向工程,以及为驱动程序设计不同的工作方式非常有帮助。

我意识到这是 Linux 上 Rust 语言的早期阶段,这是一个雄心勃勃的挑战,但我愿意学习,驱动程序需要一些时间才能稳定到任何一种方式(尤其是 UAPI)都可以上游的程度,

我听说 Rust For Linux 最迟将在接下来的几个内核周期中被合并,因此用 Rust 写 Linux 驱动感觉不像以前那样是一场赌博。

如果成了,这将是第一个用 Rust 语言编写的 Linux 内核 GPU 驱动程序。鉴于目前尚未有 Rust 编写的实际驱动程序代码,驱动程序的 Rust 实现有几种可能性:完全使用 Rust 实现(涉及 DRM 子系统的渲染部分),或者只是大部分固件交互逻辑在 Rust 中完成,然后顶层驱动程序用 C 编写并调用 Rust 抽象层。目前仍有待观察。

有关使用 Rust 写 Apple GPU 驱动的详细描述,可以通过 rust-for-linux 邮件列表 找到:https://lore.kernel.org/rust-for-linux/70657af9-90bb-ee9e-4877-df4b14c134a5@asahilina.net/t/#u

往期推荐



Astro 1.0发布,现代化静态站点生成器

Redis回击Dragonfly:13年后,Redis的架构依然是同类最佳

建议退役!JSON之父:JavaScript已阻碍进步



这里有最新开源资讯、软件更新、技术干货等内容
点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦~

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存