Stela 项目通过创建一个通用 Apple Silicon 硬件层,提供了一种在 x86-64 PC 上运行 macOS 的方法。与运行在宿主操作系统之上的传统模拟器不同,Stela 作为一个 UEFI 启动程序运行,直接将 arm64e 代码转换为 x86-64 指令,从而能够在标准的 Intel 或 AMD 硬件上执行 Apple 的软件。
指令转换与硬件建模
从核心上看,Stela 充当了两种不同处理器架构之间的翻译器。它采用了一个处理超过 3,000 种 AArch64 指令编码的编译器,将客户机寄存器映射到宿主机寄存器,并缓存转换后的代码以提高效率。
为了使环境具备功能性,Stela 提供了一个 Apple silicon 硬件模型。它目前模拟 Mac mini (M2),为 macOS 和大多数应用程序的初始化提供必要的环境。
“它是一个带有 arm64 到 x86-64 转换器、NVIDIA GPU 的 Metal 驱动程序以及 Apple silicon 硬件模型的 UEFI 启动程序。”
— GitHub - tylertms/Stela: A general purpose Apple Silicon layer for x86-64 PCs
通过 Metal 驱动程序提供图形支持
该项目的一个关键组件是其 Metal 驱动程序,它允许系统与 NVIDIA 图形硬件进行交互。该驱动程序将 AIR(Metal 的着色器中间表示)直接编译为 NIR(Mesa 使用的中间表示)。
这一特定实现支持 Metal3 和 Apple7 GPU 系列,特别针对 NVIDIA GTX 16 和 RTX 20 系列 GPU 及更新型号。
当前限制与性能
虽然 Stela 成功启动了 macOS 和许多应用程序,但该项目仍处于早期开发阶段(v0.1.0)。开发者指出,目前的体验较慢,且需要大量的进一步测试才能达到稳定性。
由于该项目仍处于主要的硬件支持修复和优化过程中,用户应预期较低的启动成功率和性能瓶颈。
Hacker News 读者的反应
- 技术补充: 一位评论者澄清说,该项目的功能更像是反向 Rosetta 翻译,而不是标准的预编译或即时编译器。 评论 ↗
- 质疑: 另一位用户质疑该项目的必要性,声称他们能够在不使用此特定工具的情况下在 macOS 上实现类似结果。 评论 ↗
- 亲身经验: 一位评论者表示有兴趣专门使用该项目在 PC 上运行移动游戏,而其他人则指出当前版本运行缓慢且存在错误。 评论 ↗
以上为 Hacker News 讨论中观点的摘要,并非经过核实的事实。 阅读完整讨论 ↗
