Asahi Linux è il progetto che ha permesso di portare il sistema operativo del pinguino sui dispositivi Mac basati su chip Apple Silicon, come i modelli M1 e M2. Sviluppato da Héctor Martin e dal suo team, Asahi Linux si propone come alternativa aperta e di primo livello a macOS. Gli sviluppatori hanno affrontato e vinto la sfida di mettere a punto una piattaforma stabile e performante partendo dal reverse engineering del software Apple. Non poteva esserci cosa più difficile, dato che macOS è a sorgente chiuso e la Mela non condivide le ottimizzazioni hardware che applica. Eppure i risultati sono davvero eccezionali.
Il gaming sbarca sui Mac Apple Silicon con Asahi Linux
Ad agosto 2023, gli sviluppatori di Asahi Linux hanno presentato il primo driver open source compatibile con la GPU Apple e da allora ne hanno significativamente migliorato le prestazioni. Tanto da assicurare performance convincenti: OpenGL si comporta meglio su Asahi Linux che su macOS.
Adesso la sviluppatrice Alyssa Rosenzweig annuncia un’importante novità. È possibile avviare videogiochi di prima fascia su Apple Silicon utilizzando proprio Asahi Linux. E ciò grazie al pieno supporto delle librerie OpenGL, OpenCL e Vulkan sull’hardware della Mela.
Il pacchetto Asahi game playing toolkit, appena rilasciato pubblicamente, integra i driver Vulkan con emulazione x86 e garantisce piena compatibilità con Windows.
Driver grafici conformi con Apple Silicon: il traguardo raggiunto
Una delle caratteristiche più importanti di Asahi Linux è l’integrazione di driver conformi con le principali API grafiche, incluse le già citate OpenGL, OpenCL e Vulkan. È un aspetto di grande rilievo per gli sviluppatori di giochi e per i gamer, poiché la conformità garantisce che il software possa interagire con l’hardware in modo prevedibile e stabile.
Attualmente, Asahi Linux è l’unico sistema a fornire driver conformi con tutte le varie API su hardware Apple, offrendo agli utenti la possibilità di eseguire giochi e applicazioni con prestazioni ottimizzate.
Processo di installazione e configurazione per il gaming
L’installazione del toolkit Asahi è relativamente semplice e sfrutta Fedora Asahi Remix come base.
Fedora Asahi Remix è una distribuzione di Linux creata come collaborazione tra il progetto Asahi Linux e Fedora. La distribuzione è progettata per funzionare su sistemi Apple Silicon e offre un’installazione semplificata attraverso comandi da impartire nella finestra del terminale. Utilizza di default il desktop environment KDE Plasma, ma offre anche varianti con GNOME per coloro che preferiscono quest’ultimo.
La collaborazione con Fedora consente al team di Asahi Linux (inizialmente basato su Arch Linux) di concentrarsi sul reverse engineering Apple, mentre Fedora fornisce una base solida e il supporto ufficiale ARM64.
Rosenzweig spiega che in primis, per provare le nuove abilità gaming del sistema, è ovviamente necessario installare Fedora Asahi Remix. Successivamente, si devono digitare i comandi seguenti:
dnf upgrade --refresh && reboot
dnf install steam
Il primo permette di installare i driver aggiornati mentre il secondo carica Steam. Completati questi passaggi, è possibile iniziare subito a giocare.
Per ottenere un’esperienza di gioco fluida, è consigliato utilizzare macchine con almeno 16 GB di RAM. Questo è dovuto al sovraccarico introdotto dall’emulazione dell’architettura x86, necessaria per far girare giochi originariamente progettati per Windows.
Lo stack tecnologico dietro all’abilitazione del gaming su Apple Silicon
Dietro le quinte, Asahi sfrutta un complesso stack tecnologico per garantire che i giochi progettati per x86 e Windows possano essere eseguiti su macchine Apple basate su ARM. La “conversione” avviene attraverso diversi livelli:
- Emulazione x86 con FEX: FEX è un emulatore che permette di eseguire software compilato per architetture x86 su piattaforme ARM. Un passaggio essenziale poiché la maggior parte dei giochi per PC sono sviluppati per architetture x86.
- Wine per la compatibilità con Windows: Wine traduce le chiamate di sistema Windows in quelle di Linux, permettendo di eseguire applicazioni Windows senza necessità di un’installazione completa del sistema operativo Microsoft.
- DXVK e vkd3d-proton: Le librerie DXVK e vkd3d-proton convertono le chiamate grafiche DirectX (utilizzate dalla maggior parte dei giochi per PC) in chiamate Vulkan, un’API grafica moderna e altamente efficiente supportata da Linux.
Uno degli ostacoli tecnici più interessanti e complessi affrontati da Asahi è il problema delle dimensioni delle pagine di memoria. Le CPU Apple di derivazione ARM utilizzano pagine di memoria da 16 KB, mentre i giochi x86, originariamente progettati per Windows, si aspettano pagine da 4 KB. Questo disallineamento può causare problemi di allocazione di memoria che impediscono l’esecuzione corretta dei giochi.
La soluzione sviluppata dal team Asahi è elegante: si è provveduto a virtualizzare un piccolo kernel Linux ARM con pagine da 4 KB, utilizzato per farvi girare i videogiochi. Il risultato è che i giochi percepiscono una memoria con pagine da 4 KB, mentre il sistema operativo continua a utilizzare pagine da 16 KB.
I prossimi sviluppi: sparse texturing e ottimizzazioni
Il team di Asahi non si ferma qui. Uno dei prossimi obiettivi è implementare la tecnica nota come sparse texturing: permette di gestire grandi quantità di texture in modo più efficiente. Sarà fondamentale per il supporto di giochi DirectX 12 più complessi.
Allo stato attuale, infatti, il toolkit gaming di Asahi è in grado di far girare alcuni giochi DirectX 12 che non richiedono sparse texturing, ma l’implementazione di questa funzionalità aprirà le porte a un numero maggiore di titoli evoluti.
La tecnologia sviluppata per l’emulazione x86 non si limita però al gaming. Il team prevede di espandere questa funzionalità per supportare applicazioni x86 generiche sui sistemi ARM. Sono perciò destinati ad aprirsi nuovi scenari per gli utenti che desiderano eseguire software x86 sui sistemi Mac, ampliando ulteriormente le possibilità di utilizzo di Linux su Apple Silicon.