出品|开源中国
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://www.toutiao.com/article/7130826160648765991/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。