Molti utenti Mac utilizzano Windows o applicazioni native per quel sistema operativo sui loro Mac. Non sono la maggioranza, certamente, e neanche ci si avvicinano, ma sono comunque un numero importante di utenti. Lo dimostrano l’adozione delle due tecnologie principali: Dual boot (con Boot Camp) e virtualizzazione (Parallels, VirtualBox e altri).
Il “miracolo” è possibile in parte perché Apple ha utilizzato finora una architettura basata su processori Intel e schede madri compatibili. Con i driver adeguati è infatti possibile trasformare un Mac con Intel in un Pc con Windows (e le prestazioni sono solitamente ottime).
Cosa succederà adesso che Apple è passata ad Arm? Quali scenari, soprattutto dopo l’annuncio che Apple non supporterà più BootCamp? Per capire quali possibili scenari, vediamo prima le tecnologie in gioco e poi le politiche delle varie aziende coinvolte.
Il vantaggio di essere Intel Inside
Con un processore Intel e una architettura standard, cioè compatibile con il riferimento P.C. nato nel 1981 in casa Ibm, tutti i Mac possono utilizzare “facilmente” Windows e le sue applicazioni. Per farlo, da un punto di vista tecnologico, si sono utilizzate due strade diverse, che hanno i loro pro e contro.
Boot Camp
Con la tecnologia di Apple è possibile creare una seconda partizione logica del disco principale (senza bisogno di formattarlo) e installare uno dei sistemi operativi sanzionati da Apple. Occorre la compatibilità, cioè la disponibilità dei driver e dei requisiti giusti dal punto di vista tecnico per far funzionare i nuovi sistemi operativi direttamente sull’hardware Apple, e da quando ci sono i chip T1 e adesso T2 per la sicurezza occorre anche la firma digitale che autorizzi il nuovo sistema operativo.
Si possono caricare versioni originali di Windows, di Unix e di Linux. Il sistema semplicemente consente di scegliere quale sistema operativo avviare: il disco rigido è diviso in due per cui l’altra partizione non è condivisa (ma può esserlo) e soprattutto funziona un sistema operativo alla volta. Però funziona alla grande, perché usa l’hardware reale: gira “bare metal”, per così dire.
Il risultato è che, per chi ha bisogno di una macchina Windows magari per giocare, dopo che ha lavorato su quella macOS, può fare un riavvio e semplicemente cambiare sistema operativo. È la soluzione migliore, più potente e pulita, ma la meno utilizzata. Le persone preferiscono infatti i virtualizzatori.
Gli ipervisori
Negli anni hanno preso piede un’altra tipologia di software. Non sono nuovi né come tecnologia né come storia commerciale. Parallels faceva girare Windows su Mac quando era PowerPC, ma ci arriviamo tra un attimo.
I virtualizzatori utilizzano un trucco: gli “ipervisori”, che possono essere hardware (fatti da Intel nei suoi processori, e sono in effetti presenti) oppure software, costruiti con l’aiuto del sistema operativo oppure sopra il sistema operativo. Attenzione, perché è un po’ complicato.
Se si utilizza un ipervisore hardware, si avviano i due sistemi operativo e ciascuno accede a parte delle risorse di calcolo, memoria e rete: ci pensa l’hardware a gestirle e bilanciare lo spazio. È la soluzione usata nei server che fanno il cloud e la più costosa.
Poi c’è la soluzione software, dove l’ipervisore è semplicemente un software che può girare dentro il sistema operativo, nel kernel, oppure come semplice applicativo. Queste soluzioni sono nate per trovare soluzioni più economiche e semplici da gestire che non gli ipervisori hardware, perché si possono aggiornare e cambiare facilmente e non ci si vincola a un particolare tipo di hardware.
Ipervisori software
Le macchine virtuali che fanno vivere ad esempio i container su software come Docker utilizzano Linux come sistema operativo host e l’ipervisore è dentro il kernel del sistema operativo. Linux implementa una soluzione molto potente che permette di gestire la virtualizzazione a livello di sistema operativo nello User Space mettendo in comune le risorse della macchina e anche quelle dell’OS stesso, permettendo di creare applicativi virtuali che girano in spazi chiusi (container) e che funzionano molto meglio.
Sono diventati i mattoni del cloud e gli sviluppatori adorano lavorare con questo tipo di soluzione per vari motivi. Docker per sviluppo funziona sia su Mac che su Windows. Ma adesso Microsoft ha messo in pancia a Windows il kernel di Linux anche per avere Docker e i container compatibili nativamente, mentre Docker per Mac utilizza dietro le quinte la VirtualBox di Oracle per far girare una macchina virtuale Linux sopra la quale funzionano i container.
Vediamo adesso cosa succede con Mac.
Dall’emulazione alla virtualizzazione
La distinzione non è più canonica, ma un tempo si distingueva tra tecnologie che emulavano su un tipo di computer un altro tipo di computer, e tecnologie invece che consentono di virtualizzare all’interno di un tipo di computer e sistema operativo un altro sistema operativo o addirittura delle singole applicazioni (come fa Docker).
Quando Mac aveva il processore PowerPc, che era potente ma completamente differente da quelli di Intel e Amd dell’epoca, a un certo punto cominciarono a farsi largo gli emulatori, come anche Parallels. L’idea era nata già a cavallo degli anni Cinquanta-Sessanta e poi aveva avuto una accelerazione con la nascita di Internet e la potenza crescente dei Pc perché molti avevano cercato di emulare le console da videogame sul computer per poter giocare titoli altrimenti non disponibili o molto costosi (dal Mame agli emulatori di quasi tutto quel che è uscito negli anni: è sostanzialmente illegale ma va ancora avanti).
Emulare
L’emulatore era un software che girava sul PowerMac dell’epoca e faceva credere al sistema operativo di turno (Windows o Linux) di essere un Pc Intel. Dato che il compito del programma era tradurre ogni istruzione di Windows da x86 a PowerPc e indietro, le performance non erano ottimali. Altre soluzioni, come DosBox, prevedevano di creare ambienti ottimizzati per far girare una singola applicazione simulando solo quello che è necessario a detta applicazione e non tutto quanto il sistema operativo (che impegna risorse ma non serve a molto quando ad esempio si giocava al primo Tomb Raider).
Virtualizzare
Il virtualizzatore invece è diventato un modo alternativo al dual boot di BootCamp. C’è sempre un software che fa credere a Windows e ai suoi programmi di funzionare su un Pc x86 anziché dentro un altro sistema operativo. Solo che, dato che l’architettura è effettivamente quella, non c’è bisogno di fare conversioni strane e tutto va più veloce. Il vantaggio rispetto al dual boot è che si possono utilizzare le app del sistema operativo ospite (Mac) e del sistema operativo ospitato (Windows) una di fianco all’altra. È la soluzione che va per la maggiore.
Scusate la lunga introduzione, na serviva per capirsi sui termini e le tecnologie. Veniamo subito a cosa succede adesso con Apple Silicon.
Apple Silicon
Apple ha cambiato tecnologia, i suoi nuovi Mac (solo alcuni, a tendere tutti quanti) useranno i processori fatti in casa del tipo che già si usa su iPhone e iPad. Sono processori tecnicamente diversi e non compatibili da quelli x86 di Intel e Amd, quindi richiedono un programma compilato in maniera diversa.
Apple ha creato due tecnologie: Universal 2 e Rosetta 2, per risolvere due problemi. Il primo è avere suoi programmi che funzionino sia su Mac x86 che su Arm. Le app Universal 2 sono “fat”, hanno sia il codice compilato per l’uno che per l’altro sistema. In questo modo, dal punto di vista dell’utente, non c’è problema di quale Mac si sta usando, ancora per qualche anno.
Rosetta 2 invece serve a emulare l’ambiente x86 su Apple Silicon per far girare le vecchie app del Mac Store o di terze parti che girano solo su Intel x86. Attenzione, non c’è alcuna compatibilità con Windows o altro e neanche con Parallels, VirtualBox o altri tipi di software di virtualizzazione. sarebbe interessante provare a usarli, ma probabilmente non funzionano.
Cosa ha deciso Apple
Apple ha deciso che non c’è più BootCamp. Se ci fosse, servirebbe poco e al 99% per Windows. Solo che servirebbe Windows per Arm, che ha due problemi. Il primo è che molto immaturo e con pochi applicativi (la transizione di Microsoft è iniziata un anno e mezzo fa ma non sta procedendo bene, anche per le pressioni di Intel). Il secondo è che Microsoft consegna Windows Arm solo ai produttori di cui si fida: il modello di licenza non consente di installarlo su altre macchine. E oltretutto non lo consegna neanche agli utenti ma lo precarica sui computer. Questo probabilmente per evitare che tutti i ChromeBook del pianeta vengano trasformati in NetBook Windows.
Comunque, questo rende difficile e illegale fare BootCamp per Apple (che infatti non c’è). Apple a sua volta non consente di installare un sistema operativo non firmato digitalmente da lei sui suoi hardware, altrimenti avremmo da tempo Windows Arm che gira su iPad.
Rimane il campo degli emulatori, che possono utilizzare degli ipervisori oppure andare via software puro.
Emulazione su Apple Silicon
Apple non vieta in alcun modo di programmare un emulatore che consenta di ingannare il sistema operativo Windows per x86 e fargli credere di girare su Intel o Amd. Inoltre, la licenza di Windows dovrebbe consentirlo (anche se c’è il problema del chip per la sicurezza di Microsoft). Sarà soltanto la voglia di aziende come Parallels o di Oracle (VirtualBox) di scrivere questi emulatori e poi di vedere se hanno performance adeguate e se non ci sono problemi legali.
Apple ha chiarito che ci sono ipervisori software/hardware di nuova generazione implementati sui chip Arm e abbastanza potenti da garantire un altro aspetto di compatibilità che all’azienda sta più a cuore, e cioè quello con il mondo Linux. Ad Apple interessa infatti che gli sviluppatori abbiano accesso a tutte le librerie e applicativi utili per poter continuare a creare i loro applicativi. Non bisogna dimenticare infatti che Xcode è uno strumento usato da una decina di milioni di creatori di app non solo su Mac ma anche su iOS.
Secondo Craig Federighi avere a disposizione queste tecnologie rende inutile BootCamp e permette di fare molto di più con meno. Inoltre, una cosa che interessa molto chi vive e lavora di software open source, è il fatto che l’arrivo di Apple di fatto nel mondo Arm (con iOS le cose sono diverse e più “chiuse”) vuol dire che verranno portati nelle varie distribuzioni Unix/Linux migliaia di strumenti software. L’impatto di questo è ancora da valutare, ma ad esempio tutto il mondo che gira attorno ai Raspberry Pi, che hanno architettura Arm ma che finora non hanno potuto usare alcuni strumenti e librerie perché la comunità dei loro sviluppatori non ha la forza o la capacità di tradurle da x86, avranno un dividendo di pace dalla migrazione di piattaforma di macOS elevatissimo.
Comunque, al keynote della WWDC hanno fatto vedere che Linux gira bene e veloce. Sia chiaro: la versione Arm di Linux, non quella x86.
Il gioco di Microsoft
Quindi andiamo verso l’emulazione di Windows oppure Microsoft ci darà le licenze per la sua versione Arm? Una variabile che non è da dimenticare, infine, è che Microsoft sta giocando una battaglia molto diversa rispetto a venti anni fa. L’azienda con l’attuale ceo Satya Nadella ha messo in pensione l’approccio “vecchio” di Steve Ballmer e invece si muove sul piano dei formati, del cloud e dell’abbraccio (mortale, a opinione di chi scrive) verso l’open source.
Microsoft non ha interesse a che il suo sistema operativo giri su Mac per questioni di compatibilità. Adesso che è tutto su cloud Azure, su abbonamento e con app dedicate, le conviene tenere il controllo con le sue app. Perché perdere il controllo del sistema operativo virtualizzato su un hardware proprietario altrui quando può far girare Skype, Teams, Office e tutto il resto con app di cui ha il controllo pieno? Lo sta già facendo, perché, assieme ad Adobe, Microsoft è una delle due aziende che hanno già portato le loro app su macOS Big Sur Apple Silicon. Lo hanno fatto perché avevano già tutto pronto per iPhone e iPad, ovviamente, e hanno dovuto praticamente lavorare solo sull’interfaccia e altre cose minori. Ma lo hanno fatto anche perché la “presa” che queste aziende hanno passa dai formati e dal cloud. Il sistema operativo è diventato un di cui e non hanno alcun interesse a renderlo più abbordabile da chi sta su Mac. Con buona parte del software di terze parti disponibile solo su quella piattaforma Windows.
Dal punto di vista di Microsoft, se a qualche utente Mac serve qualche app di terze parti presente solo su Windows, si comprasse pure un Pc.