Em novembro de 2020, a Apple anunciou a transição histórica para os chips Apple Silicon, marcando a terceira grande mudança de arquitetura da empresa. Esta transição do Intel x86_64 para o ARM-based M1 exigiu uma solução de tradução binária para garantir a compatibilidade de software, resultando na criação do Rosetta 2, a tecnologia de tradução binária mais sofisticada da Apple até hoje.
Como funciona o Rosetta 2?
O Rosetta 2 permite que aplicativos compilados para Macs Intel x86_64 rodem em Macs com Apple Silicon (ARM64). Ele combina técnicas de tradução binária como Ahead-of-Time (AOT) e Just-in-Time (JIT), além de tradução de conjuntos de instruções e chamadas de sistema. Esta tecnologia é crucial para a transição suave entre arquiteturas, garantindo que os usuários possam continuar a usar seus aplicativos sem interrupções significativas.
Instalação e Integração com macOS
No macOS, o Rosetta 2 não vem instalado por padrão em Macs com Apple Silicon. Sua instalação é automática quando um aplicativo x86_64 é executado pela primeira vez, ou pode ser feita via linha de comando. A tecnologia está localizada no diretório ‘oah’, uma referência à era de transição do PowerPC.
Desafios Técnicos e Documentação
O projeto de engenharia reversa documentou e analisou funções dos binários do Rosetta 2, destacando os desafios técnicos enfrentados na tradução binária. Este trabalho é para fins educacionais e de pesquisa, conforme a licença MIT, e contribuições são bem-vindas.
Fonte original: Hacker News