M3/M4 Mac上跑Linux“破灭”?Asahi Linux又一核心开发者官宣退出:告别苹果,转战英特尔
似乎不再执着于让 Linux 跑在新款 Mac 设备上,Asahi Linux 项目的又一位核心人物 Alyssa Anne Rosenzweig 于今日也做出了一个重大决定:告别苹果生态系统,准备迎接下一个挑战——加入英特尔团队,围绕 Xe-HPG 架构展开工作。
消息一出,引发开源社区的热烈讨论。有人送上祝福,期待她的新征程;也有人隐隐担心,这是不是意味着在 M3、M4 芯片的 Mac 上跑 Linux 的梦想将愈发遥远。
那 Alyssa 究竟是何方神圣?她的离开会对 Linux 运行在苹果 M 系列芯片上的项目带来怎样的影响?
高中写驱动,进入大学即获得正式工作
翻开 Alyssa 的个人博客主页,映入眼帘的自我介绍相当简洁:一位专注图形驱动的开发者,同时也是软件自由的忠实拥护者。
殊不知,Alyssa 在图形驱动和编译器开发方面已经积累了整整七年的经验。而当这一切开始时,她还只是一个学生;即便到现在,她也不过才本科毕业两年。
回看她的成长历程,早在 2017 年,高中时期的 Alyssa 就独立启动了一个实验性项目——Panfrost,这是一个早期的开源 Mali 驱动研究项目。
它的目标是为广泛应用在手机、平板和嵌入式设备中的 Arm Mali GPU 提供自由可用的驱动。由于当时 Arm 官方的 Mali 驱动长期闭源,Linux 等开源系统的支持受到严重限制,Alyssa 决定“不等官方”,通过研究芯片的工作方式,开启”逆向编程“,自行推导出驱动实现方法。
到 2018 年,Panfrost 已经能够在 Mesa3D 中运行,并首次在 FOSDEM(欧洲自由与开源软件开发者大会)上公开展示,引起了开源图形社区的广泛关注。
再到 2019 年,Panfrost 正式合并进 Mesa 主线,逐渐成熟起来,并开始支持更多 Mali GPU 架构(如 Midgard、Bifrost 等),成为 Linux 上 Mali GPU 的主要开源驱动方案。
也正凭借在 Panfrost 项目中的出色表现,Alyssa 于 2019 年 6 月加入了 Collabora 开源软件咨询公司实习,主要负责与 Arm 公司合作,开发 Arm Mali GPU 的开源图形驱动。具体包括:
设计并实现了符合标准的 OpenGL ES 3.1 驱动。
为 Midgard、Bifrost 和 Valhall 架构开发了着色器编译器。
撰写并整理了基于 Mesa3D 的驱动栈文档。
与多样化的客户合作,为其产品提供所需的开源 Mali 驱动。
三个月后,Alyssa 才正式进入多伦多大学,攻读计算机科学本科。
在校期间,她一边学习书本的新知识,一边在工作中积累图形驱动实践经验,直到本科毕业。
从随口提个建议到成为 Asahi Linux 核心开发者,这些都是业余时间的爱好
在兼顾 Panfrost 项目的同时,Alyssa 也加入了让 Linux 跑在 M 芯片系列的 Mac 上从 0 到 1 的 Asahi Linux 项目落地的关键阶段。
根据她自己的博客回忆,这段故事要从 2020 年 12 月说起。
那时,苹果发布了 M1 芯片,并首次搭载自研 GPU,一些开源爱好者便开始对这套硬件进行逆向工程,并尝试移植 Linux。正是在这一背景下,一位名为 Hector Martin 的开发者发起了 Asahi Linux 项目,一个专门让 Linux 适配苹果自研芯片的开源计划。
正如上文所述,当时 Alyssa 在 Collabora 公司工作,负责 Panfrost 里针对 Arm Mali GPU 的开源驱动。彼时的 Hector 向上游开源维护者们寻求指导,而 Alyssa 看到了之后,最初只是随口给出一些建议。
但没想到,她后来给自己买了一份圣诞礼物——一台 M1 Mac,然后正式投身其中。
在学业课程和为 Collabora 工作之余,处于大学阶段的她又抽出了一些时间开始研究 M1 GPU 的着色器指令集,并在博客上开启了《剖析 Apple M1 GPU》系列文章的第一篇(https://rosenzweig.io/blog/asahi-gpu-part-1.html)。
事情就这样顺理成章地推进。
没过几周,Alyssa 成功在屏幕上画出了一个三角形。
使用开源代码在 M1 上渲染的三角形
与此同时,她也在博客中笑称道——在 3D 图形学里,有句话是:“一旦你能画出一个三角形,就意味着一切皆有可能。”
于是,她开启了「一切皆有可能」的各种尝试。很快,她写出了一个着色器编译器(https://gitlab.freedesktop.org/asahi/mesa/-/tree/agx-milestone-1/src/asahi/compiler)。
那个学期期末考试结束后,她请了几天假,基于新写的编译器实现了一个能在 OpenGL 上转动齿轮的驱动程序。
在 Apple M1 上渲染的 glxgears
接下来的一年里,她不断做逆向工程、不断改进驱动,直到它能在 macOS 上跑起 3D 游戏。
Neverball 使用开源 OpenGL 驱动程序在 Apple M1 GPU 上渲染
与此同时,Alyssa 透露,当时来自 Asahi Linux 项目的另一名成员 Asahi Lina 正在为苹果 GPU 写了一个内核驱动,而 Alyssa 写的用户态 OpenGL 驱动已经能在 macOS 上运行,只差 Asahi Lina 的内核驱动,开源的完整图形栈就能拼起来。
等待了一段时间到了 2022 年 12 月,在她们的合力之下,Asahi Linux 终于实现了图形加速功能。
此时再从时间线来看,此时也才 2023 年 1 月,这是 Alyssa 进入多伦多大学计算机科学专业的最后一个学期。
多年来,她一边读书、一边做兼职工作,同时将 GPU 驱动开发当作业余爱好。
在面临毕业选择时,她和很多毕业生一样,也曾感到迷茫:究竟是继续 Panfrost,还是追求新的挑战?Alyssa 回想自己的过去:
从 2017 年高中时期逆向 Mali Midgard GPU,到 2019 年进入 Collabora 实习,再到大学四年持续在正式工作中开发,Panfrost 已从一个“学生玩具”成长为专业驱动,获得 Arm 官方支持和硬件文档。
她觉得 Panfrost 这个项目的发展早已超出了自己当初的设想,是时候转向下一个挑战了。
那时,Alyssa 为自己设定了一些新目标:
把 M1 上的驱动做完,交付一个高质量的成果。
为 M1 带来完整、符合标准的 OpenGL 驱动(苹果自带的 OpenGL 驱动并不完全符合规范,而我们应该追求行业标准)。
把完整的、符合标准的 Vulkan 带到苹果平台,打破“Vulkan 不适合苹果硬件”的迷思。
让 Proton 游戏在 Asahi Linux 上跑起来(Proton 是 Valve 为 Steam Deck 打造的兼容层,可以让 Windows 游戏在 Linux 上运行,甚至有时比在 Windows 上表现更好。为什么不把这种好处带到 M1 上呢?)。
“对我来说,Panfrost 是曾经的挑战,而现在的新挑战是:让 Linux 在 M1 上也能畅玩游戏”,Alyssa 说道。
所以,在学业完成后,她全职投入 Linux 游戏支持。
不久后,她和 Asahi Linux 项目团队成员共同发布了 OpenGL 3.1,并在几周内通过 OpenGL ES 3.1 官方一致性测试,这意味着 M1 的功能已经追平了 Panfrost。
有了这些胜利,Alyssa 下定决心——“我想要做得更远”。
接着,她发现 OpenGL (ES) 3.2 要求支持几何着色器,而无论是 Arm 还是苹果的硬件都没有原生支持这种遗留功能。闭源驱动通过计算着色器进行模拟,但在开源世界里还没有任何前例。尽管 Mesa 里的多个驱动都需要类似的几何/细分着色器模拟功能,但一直没人动手去做。
其表示,自己最初能快速推进 OpenGL,是因为 Mesa 有很多成熟的公共代码。而这个时候,她想着,是时候回馈开源社区了。
接下来的大半年,她自己潜心开发,最终实现了几何/细分着色器的模拟支持,甚至把整个 OpenGL 的“拼图”都补齐了。到 2024 年 1 月,其顺利通过了 OpenGL 4.6 的完整一致性测试,算是把 OpenGL 全部收官。
随后,她又用几周时间完成 Vulkan 1.3 一致性测试,并将几何/细分着色器功能接入 Vulkan 驱动,让 Proton 游戏得以运行。
至此,她上面所设立的新目标,即高质量驱动、符合标准的 OpenGL 4.6、OpenGL ES 3.2、OpenCL 3.0、Vulkan 1.4 以及 Proton 游戏支持的目标全部达成。
如今,Linux 已经能在多款 M1 和 M2 Mac 上运行,而且几乎所有硬件都能正常工作:无线网络、音频、甚至完整的图形加速。
Alyssa 感叹道:
“我们取得的成果超出了我的想象。我追逐的挑战一个个被解决。驱动已经完整地合入 Mesa 上游,性能也不错。随着“Vulkan 在苹果硬件不可行”的迷思被打破,如今 LunarG 的 KosmicKrisp 项目 也基于我的工作,把符合标准的 Vulkan 带到了 macOS。”
下一个挑战——英特尔
“我很满足。”Alyssa Anne Rosenzweig 说道,“是时候告别苹果生态,把火炬交给 Asahi Linux 社区的伙伴们继续前行。”
至于她自己,她透露——下一站,她想迎接新的挑战!
起初,Alyssa 只是在自己的博客上附上了一个指向 Intel Xe-HPG 架构的超链接,引发外界猜测她将加入英特尔。
随后,她更新了自己简历,正式透露的新方向,到英特尔去设计了 Intel GPU 的开源图形驱动,具体工作包括:
设计并开发 OpenGL 和 Vulkan 驱动,以提升 Linux 上的游戏体验。
研究构建先进着色器编译器的技术。
调试、测试并维护 Intel 的开源图形驱动。
对 3D 工作负载进行分析,识别性能瓶颈并加以优化。
为图形标准规范的制定作出贡献。
一年之内,Asahi Linux 项目损失多名大将!
Alyssa Anne Rosenzweig 的退出,是发生在 Hector Martin 离开项目、Asahi Lina 暂停苹果开源驱动开发之后。
Hector Martin 是 Asahi Linux(https://www.patreon.com/marcan)项目的发起人。起初,他的目标是让 M1 Mac 用户真正拥抱 Linux,并通过众筹方式启动开发。五年后,Hector Martin 在今年年初先辞去了 Apple ARM 支持的上游维护者职务,随后在 2 月发表长文,正式宣布辞去 Asahi Linux 负责人的职务。
在长文中,Hector Martin 透露了心酸经历:他在将 Rust 代码合入 Linux 内核过程中遭遇层层阻碍,而 Linux 掌舵者 Linus Torvalds 对此采取了“放任自流”的态度,未给予明确支持;他还发现内核社区中有些成员“表里不一”,当面一套、背后一套;更糟的是,开源项目起步后资金支持不足,而需求却越来越多,每日被催更的压力让他对继续维护 Asahi Linux 感到力不从心,由此选择离开。
不止 Hector Martin,就在五个月前,Asahi Linux 的另一个核心开发者 Asahi Lina 在社交媒体 BlueSky 上宣布,由于个人原因及安全顾虑,决定无限期暂停 Apple GPU 驱动开发工作。Asahi Lina 在项目中发挥了至关重要的作用:她主导开发了基于 Rust 的苹果 DRM 内核显卡驱动,参与 Apple M1 与 M2 GPU 的逆向工程,还负责 Asahi AGX Gallium3D 驱动和 Honeykrisp Vulkan 驱动在 Mesa 中的开发。
不可否认,核心开发者接连离开,不仅对 Apple Silicon 的 Linux 图形支持造成冲击,也对整体项目进度带来广泛影响。
目前,Asahi Linux 仅支持 M1 和 M2 芯片,尚未覆盖 M3 和 M4。因此,不少人担忧:“Asahi Linux 的开发还在积极进行吗?M1 和 M2 基本完成,但 M3+ 工作似乎还没启动。主要贡献者离开后,我很担心 Asahi 的未来。”
但更多的网友们对她的去向纷纷表示祝福,也为英特尔高兴:
“说实话,看到她离开 Asahi Linux 真的有点心碎。她从零开始构建 Vulkan 驱动,付出了巨大努力。祝她在英特尔一切顺利。如果我以后买了 Intel GPU,我可以放心,它在 Linux 上一定能运行得很好。”
“1. 多伦多大学的学生 2. 在 Collabora 工作的一位负责人 3. 非常成功且雄心勃勃的业余项目。她是怎么兼顾并完成所有这些事的?我连其中一项都做不好。”
“英特尔,你真幸运。”
参考:
https://rosenzweig.io/blog/asahi-gpu-part-n.html
https://rosenzweig.io/resume-en.pdf
https://news.ycombinator.com/item?id=45034537
本文来自微信公众号“CSDN”,整理:屠敏 ,36氪经授权发布。