macOS Rosetta 2: emulazione Intel su ARM

Cos'è Rosetta 2

Rosetta 2 è il layer di traduzione binaria che permette ai Mac Apple Silicon di eseguire applicazioni compilate per processori Intel x86_64. È il successore della Rosetta originale (2006-2011, usata nella transizione PowerPC-Intel). A differenza di un'emulazione tradizionale, Rosetta 2 traduce il codice da x86 a ARM la prima volta che lo esegui, salva il risultato in cache, e successivamente lancia direttamente la versione tradotta. Il processo è quasi trasparente per l'utente: oltre a un leggero ritardo al primo lancio, l'app si comporta come una qualsiasi altra app macOS.

Come si installa

Rosetta 2 non è preinstallato sui Mac Apple Silicon. Viene installato al primo tentativo di aprire un'app solo Intel: macOS mostra un popup "Per aprire X devi installare Rosetta", clicca Installa, autentica e attendi qualche minuto. In alternativa, installazione manuale da terminale: softwareupdate --install-rosetta (richiede --agree-to-license per accettare la licenza automaticamente). In contesti aziendali con MDM Rosetta 2 può essere installato in fase di deploy iniziale del Mac, evitando il prompt al primo lancio di un'app Intel.

Universal Binary vs solo Intel

Le app moderne sono distribuite come Universal Binary: un singolo file .app contiene sia codice Intel sia codice ARM. macOS sceglie automaticamente la versione nativa ARM: nessuna traduzione necessaria. Le app vecchie o non aggiornate contengono solo codice Intel: vengono eseguite via Rosetta 2. Il formato Universal Binary fa crescere la dimensione delle app del 30-50%, ma garantisce esecuzione ottimale su entrambe le architetture senza decisioni dell'utente.

Come capire se un'app usa Rosetta

Apri Monitoraggio Attività, vai nella tab CPU. Aggiungi la colonna Tipo: Apple indica nativo ARM, Intel indica esecuzione via Rosetta. In Finder: tasto destro sull'app > Ottieni informazioni; cerca la voce Tipo nella sezione Generali: indica Universal, Intel o Apple Silicon. Da terminale: file /Applicazioni/NomeApp.app/Contents/MacOS/NomeApp mostra le architetture supportate dal binario (x86_64, arm64, o entrambe).

Forzare l'esecuzione via Rosetta

Alcune Universal Binary hanno bug specifici della versione ARM. Puoi forzarne l'esecuzione via Rosetta: tasto destro sull'app > Ottieni informazioni > abilita Apri con Rosetta. Utile temporaneamente quando l'aggiornamento di un plugin o estensione (Photoshop, After Effects) non è ancora disponibile nativo ARM. Per quasi tutti gli scenari conviene attendere l'aggiornamento ARM nativo invece di forzare Rosetta a lungo: l'esperienza utente nativa è migliore.

Prestazioni

Rosetta 2 ha un'overhead tipico del 10-25% rispetto a codice ARM nativo. Per la maggior parte delle app office, sviluppo, multimedia leggero la differenza è impercettibile. Per app pesanti (rendering, encoding video, simulazioni) la versione nativa ARM è significativamente più veloce: vale la pena aggiornare le app appena disponibile la build Universal. La cache di traduzione viene memorizzata in /var/db/oah: la prima esecuzione è più lenta perché include la traduzione, le successive sono veloci come codice nativo (al netto dell'overhead intrinseco).

Limiti di Rosetta 2

Rosetta 2 non esegue: kernel extension Intel (kext) — eliminate da macOS moderno, virtualization software Intel come VirtualBox versioni vecchie, app x86 con istruzioni AVX-512, driver Intel. La virtualizzazione di Linux/Windows ARM funziona nativamente; per Windows x86 servono soluzioni come UTM con QEMU (emulazione completa, lenta). Anche alcune librerie di basso livello che usano assembly inline Intel possono fallire: i developer dovrebbero adattare il codice o usare wrapper compatibili.

Quando Rosetta verrà rimosso

Apple ha annunciato che Rosetta 2 sarà progressivamente limitato in macOS 27 (2026) e oltre. Probabilmente resterà disponibile per uso sviluppo (build di app Intel a scopo di testing) ma non più come run-time generale per gli utenti finali. Verifica nei prossimi anni che i tuoi software aziendali siano disponibili in versione nativa ARM o tramite vendor aggiornato. Se hai software interno solo Intel, pianifica il porting nei prossimi 18-24 mesi.

Per chi sviluppa

Se sviluppi software macOS distribuiscilo come Universal Binary: Xcode gestisce automaticamente la doppia compilazione. In ambito open source verifica che le tue dipendenze (librerie Homebrew, framework) siano disponibili in versione ARM nativa: la maggior parte lo è già da tempo. Per debug di problemi specifici Intel/ARM puoi forzare la build solo per una architettura con arch -x86_64 comando o arch -arm64 comando.

Rosetta in container e VM

Docker Desktop su Apple Silicon usa internamente Rosetta 2 per emulare immagini Linux x86 quando attivata l'opzione Use Rosetta for x86/amd64 emulation. Più veloce della classica emulazione QEMU. Anche le VM Linux ARM su Parallels possono usare Rosetta per binari Intel. Questa integrazione facilita lo sviluppo cross-architettura sui Mac Apple Silicon.

Privacy e Rosetta

L'installazione di Rosetta 2 non invia dati a Apple oltre alla verifica della firma. La traduzione avviene completamente on-device. La cache di traduzione contiene binari tradotti che potrebbero rivelare quali app hai eseguito: in ambito alta sicurezza considera questo nelle policy di sanitizzazione del Mac prima della cessione.

Hai bisogno di aiuto?

Se vuoi supporto Mac aziendale dal team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?