Présentation du projet
Stela est un programme de démarrage UEFI qui propose une couche d’émulation Apple Silicon pour des ordinateurs x86‑64. La version publique actuelle est la v0.1.0, qui permet de lancer macOS et la plupart des applications, mais l’expérience reste lente et le projet est déclaré très pré‑alpha. Le code source est disponible sur GitHub et ne contient aucun composant propriétaire d’Apple ; l’utilisateur doit respecter les licences d’Apple lors de l’installation du système d’exploitation.
Architecture du traducteur arm64‑e vers x86‑64
Le cœur de Stela repose sur un compilateur à la fois ahead‑of‑time (AOT) et just‑in‑time (JIT) qui convertit le code arm64e en instructions x86‑64. Le traducteur couvre plus de 3 000 encodages d’instructions AArch64, mappe les registres invités sur les registres hôtes et met en cache le code traduit pour réduire les recompilations. Cette approche permet d’exécuter le code Apple Silicon sur tout processeur compatible x86‑64‑v2, c’est‑à‑dire les CPU Intel ou AMD datant d’environ 2011 ou plus récents. Le traducteur s’appuie sur LLVM 21 ou supérieur, ce qui explique la nécessité d’une chaîne de compilation Rust/LLVM complète.
Pilote Metal et prise en charge GPU NVIDIA
Stela intègre un pilote Metal capable de fonctionner avec les cartes graphiques NVIDIA des séries GTX 16 et RTX 20, ainsi que les modèles plus récents. Le pilote compile directement le langage intermédiaire AIR de Metal en NIR, l’IR de Mesa, puis l’envoie au GPU. Il supporte les familles GPU Metal3 et Apple7, ce qui couvre les fonctionnalités graphiques attendues par macOS 27. La dépendance à un GPU NVIDIA exclut les cartes AMD ou Intel intégrées, limitant ainsi la compatibilité matérielle.
git clone https://github.com/tylertms/Stela
cd Stela
cargo xtask distLimitations actuelles et perspectives
Le projet impose plusieurs exigences matérielles : un processeur x86‑64‑v2, le Secure Boot désactivé, au moins 8 Go de RAM, une clé USB d’au moins 8 Go, une partition GPT vide de 60 Go et un accès réseau pendant l’installation pour télécharger macOS. La version actuelle ne modélise que le Mac mini (M2) et ne supporte que macOS 27. Les performances restent limitées, le démarrage étant plus lent que sur du matériel Apple natif, en partie à cause de la traduction dynamique du code et du manque d’optimisations spécifiques au GPU. Les développeurs indiquent que des correctifs matériels majeurs sont prévus, mais aucune feuille de route précise n’est fournie. En l’état, Stela constitue une preuve de concept intéressante pour les chercheurs en émulation, mais son usage quotidien nécessite encore des améliorations de stabilité et de compatibilité.