macOS 27 su PC Intel e AMD: Stela fa funzionare anche NVIDIA

Stela è un progetto open source che ricrea un Mac mini M2 su PC Intel e AMD, traducendo codice ARM64e in x86-64 e supportando GPU NVIDIA tramite Metal. macOS 27 si avvia, ma prestazioni e compatibilità restano sperimentali.

Installare macOS 27 su un PC basato su chip Intel o AMD, utilizzando persino una scheda grafica NVIDIA, sembrava un’impresa quasi impossibile dopo l’abbandono dell’architettura x86 da parte di Apple. Un nuovo progetto open source, chiamato Stela (download), prova a superare il problema con una soluzione radicalmente diversa dagli Hackintosh tradizionali: ricostruire via software l’ambiente hardware di un Mac Apple Silicon e tradurre le istruzioni ARM affinché possano funzionare su una CPU x86-64.

La scelta di Apple di accantonare x86, iniziata nel 2020 con il chip M1, ha progressivamente ridotto le possibilità di eseguire macOS sui comuni PC.

Con macOS 26 Tahoe, ultima versione destinata anche ai Mac Intel, sembrava arrivato il capolinea. Eppure, dopo i recenti esperimenti per portare macOS 27 su Snapdragon e altri processori ARM, arriva qualcosa di ancora più sorprendente.

Stela, disponibile con licenza GPL-2.0-or-later, dichiara di riuscire ad avviare macOS 27 e numerose applicazioni su hardware x86. Il progetto resta del tutto sperimentale: gli sviluppatori avvertono che le prestazioni sono ancora modeste e che le probabilità di completare correttamente l’avvio, sulle configurazioni attuali, sono limitate.

Stela non è un normale Hackintosh: simula un Mac mini M2

Un Hackintosh tradizionale tenta di far funzionare macOS direttamente su componenti non Apple, intervenendo sul processo di avvio, sui driver e sull’identificazione dell’hardware. Stela affronta il problema diversamente: presenta virtualmente al sistema operativo un Mac mini con chip M2, anche se il computer fisico utilizza un processore Intel o AMD.

Alla base del progetto troviamo un programma di avvio UEFI, un traduttore delle istruzioni ARM64 e componenti che riproducono le caratteristiche hardware attese dal sistema Apple.

Non ci troviamo quindi di fronte a una semplice soluzioni di virtualizzazione: una macchina virtuale sfrutta la stessa architettura della “CPU ospitante” mentre Stela deve anche convertire codice destinato a un’architettura completamente diversa.

macOS per Apple Silicon non può eseguire le proprie istruzioni su un processore x86: Stela cerca di colmare tale incompatibilità senza ricorrere alla classica emulazione interpretativa di ogni singola istruzione utilizzando tecniche di traduzione binaria dinamica, abbinate alla modellazione dei dispositivi Apple.

Come funziona la traduzione da ARM64 a x86-64

Il componente centrale di Stela combina due modalità di compilazione: AOT (Ahead-of-Time) e JIT (Just-in-Time): la prima permette di preparare codice tradotto anticipando l’esecuzione vera e propria; la seconda genera istruzioni x86-64 durante il funzionamento del sistema.

Il traduttore gestisce oltre 3.000 codifiche delle istruzioni AArch64, effettua la mappatura dei registri della CPU virtuale sui registri del processore fisico e conserva il codice tradotto in una cache.

La compatibilità con ARM64e, variante dell’architettura ARM utilizzata da Apple che comprende funzionalità legate all’autenticazione dei puntatori, introduce ulteriori complessità. Non basta convertire operazioni aritmetiche o istruzioni di salto: bisogna preservare il comportamento del software anche quando entrano in gioco memoria, eccezioni, chiamate di sistema e meccanismi di protezione.

È interessante osservare come Stela affronti un problema opposto rispetto a Rosetta 2: il traduttore di Apple esegue applicazioni Intel sui Mac ARM mentre Stela tenta di eseguire un intero ambiente ARM su CPU x86.

Le difficoltà nella traduzione tra architetture, soprattutto per la gestione della memoria e delle operazioni atomiche, spiegano perché la compatibilità funzionale non garantisca prestazioni soddisfacenti.

Un driver Metal per le GPU NVIDIA: la parte più sorprendente

Il secondo elemento tecnicamente notevole riguarda la grafica. Stela integra un driver Metal per GPU NVIDIA delle famiglie GTX 16, RTX 20 e successive: è una scelta particolarmente ambiziosa, considerando che le GPU NVIDIA moderne non dispongono del supporto ufficiale richiesto dalle recenti versioni di macOS.

Il driver traduce AIR (Apple Intermediate Representation), la rappresentazione intermedia degli shader Metal, direttamente in NIR, il linguaggio intermedio utilizzato dai compilatori grafici del progetto open source Mesa.

Anziché cercare di utilizzare un inesistente driver NVIDIA ufficiale per macOS 27, Stela realizza un percorso alternativo per elaborare gli shader attraverso tecnologie compatibili con l’hardware NVIDIA. Il progetto dichiara il supporto alle famiglie GPU Metal3 e Apple7, necessarie per presentare determinate capacità grafiche al software Apple.

Requisiti hardware e installazione di macOS 27

Stela richiede un processore Intel o AMD compatibile con x86-64-v2, livello di istruzioni disponibile su numerose CPU prodotte indicativamente dal 2011. Servono inoltre almeno 8 GB di RAM, firmware UEFI con Secure Boot disabilitato, una GPU NVIDIA supportata e una partizione GPT vuota di almeno 60 GB.

Dalla pagina delle release va scaricato l’eseguibile appropriato; su Linux e macOS il comando di preparazione è sudo ./stela setup, mentre su Windows si utilizza l’eseguibile stela.exe. La configurazione cancella il contenuto della chiavetta selezionata.

Per ora Stela merita attenzione soprattutto come esperimento di ingegneria dei sistemi.

Se le promesse tecniche troveranno conferma su configurazioni hardware differenti, il progetto potrebbe dimostrare che anche le versioni di macOS progettate esclusivamente per Apple Silicon possono funzionare su piattaforme profondamente diverse. Gli Hackintosh non sono improvvisamente tornati alla portata di tutti: tuttavia, qualcuno si sta impegnando per superarne il limite più importante, intervenendo direttamente sul rapporto tra istruzioni, hardware e sistema operativo.

Ti consigliamo anche

Link copiato negli appunti