La versione 5.13 del kernel Linux aggiungerà il supporto iniziale per il chip Apple M1, il primo SoC di classe desktop con design Apple Silicon.
L'anno scorso Apple ha rivelato il suo primo sistema System-on-a-Chip di classe desktop, l'Apple M1, basato sulla stessa architettura ARM della maggior parte degli smartphone e tablet. Mentre Linux funziona bene da anni sui dispositivi ARM (come il Raspberry Pi), l'hardware di Apple è fortemente personalizzato e richiede un supporto software specifico. Per fortuna, ora siamo un passo avanti verso l'esecuzione di Linux su Apple Silicon.
AsahiLinux ha lavorato per portare "un'esperienza Linux raffinata" sui Mac Apple Silicon e ha inviato il suo codice al progetto Linux per l'inclusione nel kernel Linux ufficiale. Il lavoro iniziale del gruppo è stato incorporato nel codice base del SoC Linux e probabilmente arriverà come parte del prossimo aggiornamento Linux 5.13.
È emozionante vedere il supporto iniziale per il nuovo hardware Apple arrivare nel kernel Linux solo pochi mesi dopo l'inizio della spedizione del primo hardware, ma la parola chiave è "iniziale". Mentre Linux
tecnicamente si avvia su M1, siamo ancora molto lontani dal collegare un'unità Live USB e fare clic su un pulsante di installazione. Il codice attuale include il supporto per funzionalità di base di basso livello, come multielaborazione simmetrica tramite tavole rotanti, Gestione degli IRQ, connessioni seriali e un framebuffer. Linux può avviarsi tramite un prompt dei comandi, ma non molto altro: non c'è ancora nemmeno il supporto grafico completo.Mentre il supporto ufficiale del kernel per l'hardware M1 progredisce a un ritmo costante, alcune persone sono riuscite ad avvicinarsi a una vera esperienza desktop con vari hack. Corellium, una società di sviluppo specializzata nella virtualizzazione ARM, è stata in grado di creare un file desktop Ubuntu utilizzabile su M1 Mac Mini. Tuttavia, la maggior parte del lavoro di Corellium non viene trasferito nel kernel Linux.
Corellium ha scritto su come l'architettura dell'M1 differisce dagli altri progetti ARM in un post sul blog. "Il bootloader, tradizionalmente chiamato iBoot, carica un file oggetto eseguibile in un formato chiamato Mach-O, facoltativamente compresso e avvolto in un formato wrapper basato su ASN.1 firmato chiamato IMG4. Per fare un confronto, Linux normale su ARM a 64 bit inizia come un'immagine binaria piatta." Il gruppo ha continuato dicendo: "se ciò non bastasse, Apple ha progettato il proprio controller di interruzione, l'Apple Interrupt Controller (AIC), non compatibile con nessuno dei principali ARM GIC standard. E non solo: gli interrupt del timer, normalmente collegati a un normale interrupt per CPU su ARM, lo sono invece instradato al FIQ, una caratteristica architetturale astrusa, vista più frequentemente nel vecchio ARM a 32 bit giorni."
Mele Chipset M1 è attualmente disponibile su MacBook Air, MacBook Pro e Mac Mini. È un chip da 5 nm con otto core in totale: quattro core ad alte prestazioni e quattro core ad alta efficienza energetica. C'è anche un motore neurale per attività di apprendimento automatico, nonché una GPU a otto core. Apple ha promesso che l'M1 avrebbe offerto prestazioni migliori rispetto alle CPU Intel utilizzate in precedenza utilizzando solo circa un quarto della potenza, e successivamente test nel mondo reale ha sostenuto tali affermazioni. Per fortuna, l'M1 supporta completamente l'avvio di kernel non firmati/personalizzati, quindi l'esecuzione di Linux non richiede alcun exploit di sicurezza che potrebbe essere corretto in seguito.
Il macOS di Apple è già un ottimo sistema operativo, ma avere Linux desktop come opzione potrebbe essere un forte punto di forza per alcuni potenziali acquirenti di MacBook e Mac Mini. Apple ha dovuto affrontare critiche nel corso degli anni per aver bloccato alcuni aspetti di macOS o per aver abbandonato gli standard multipiattaforma a favore di alternative proprietarie. Ad esempio, macOS non supporta ancora l'API Vulkan multipiattaforma per la grafica, solo l'API Metal dell'azienda.