The Stela project provides a method for x86-64 PCs to run macOS by creating a general-purpose Apple Silicon hardware layer. Unlike traditional emulators that run on top of a host operating system, Stela functions as a UEFI boot program that translates arm64e code directly to x86-64 instructions, enabling the execution of Apple's software on standard Intel or AMD hardware.

Instruction Translation and Hardware Modeling

At its core, Stela acts as a translator between two different processor architectures. It employs a compiler that handles more than 3,000 AArch64 instruction encodings, mapping guest registers to host registers and caching translated code to improve efficiency.

To make the environment functional, Stela provides a model of Apple silicon hardware. It currently simulates the Mac mini (M2) to provide the necessary environment for macOS and most applications to initialize.

“It is a UEFI boot program with an arm64-to-x86-64 translator, a Metal driver for NVIDIA GPUs and a model of Apple silicon hardware.”

— GitHub - tylertms/Stela: A general purpose Apple Silicon layer for x86-64 PCs

Graphics Support via Metal Driver

A critical component of the project is its Metal driver, which allows the system to interface with NVIDIA graphics hardware. The driver compiles AIR, which is Metal's shader intermediate representation, directly into NIR, the intermediate representation used by Mesa.

This specific implementation supports the Metal3 and Apple7 GPU families, specifically targeting NVIDIA GTX 16 and RTX 20 series GPUs and newer models.

Current Limitations and Performance

While Stela successfully boots macOS and many applications, the project is in an early development stage (v0.1.0). The developer notes that the current experience is slow and requires significant further testing to achieve stability.

Users should expect low boot success rates and performance bottlenecks, as the project is still undergoing major hardware support fixes and optimization.

What Hacker News readers are saying

  • Technical note: One commenter clarified that the project functions more like a reverse Rosetta translation rather than a standard ahead-of-time or just-in-time compiler. comment ↗
  • Skeptical: Another user questioned the necessity of the project, claiming they were able to achieve similar results on macOS without using this specific tool. comment ↗
  • Experience: A commenter expressed interest in using the project specifically to run mobile games on a PC, while others noted that the current version is slow and buggy. comment ↗

Summarized opinions from the Hacker News thread, not verified facts. Read the full discussion ↗