主要观点:早期内核的 Rust 代码多以重实现现有驱动作为概念验证,其中 Asahi Lina 编写的苹果 GPU 驱动全新且在 Asahi Linux 中稳定可用,但未纳入主线内核,整合新语言存在困难。
关键信息:
- 苹果 GPU 驱动早期主要是 DRM 级抽象,后因 DRM 调度相关问题陷入停滞,如新增调度回调和修改调度器处理挂起任务方式等。
- Christian König 维护调度代码,对 Asahi Lina 的修改有不同意见,认为不应出现某些情况,而 Asahi Lina 认为这种情况脆弱且与 Rust 开发方式不符。
- 最终 Asahi Lina 放弃使用 DRM 调度,改用 workqueues 重新实现功能,这显示 Rust 与 C 在语言和开发风格上存在根本不匹配。
- 内核开发者虽支持 Rust,但对 Rust 开发者的目标理解不足,导致审查和支持困难,需要更清晰完整地阐述目标并获得支持。
重要细节: - DRM 子系统复杂,GPU 驱动需依赖抽象与其他代码接口,第一个苹果 GPU 驱动帖子主要是抽象内容。
- 同步机制 fences 用于协调任务,相关补丁引发争议,如新增调度回调和处理挂起任务的修改。
- König 认为 Rust 代码使用不当,Asahi Lina 则强调 Rust 应避免复杂依赖和保证内存安全,否则需添加大量基础设施。
- 苹果 GPU 驱动合并时间不明,Nova 驱动可能先实现,Rust 图形驱动未来可期但仍有许多问题待解。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。