Apple, 2020 yılında Intel x86_64 işlemcilerden kendi ARM tabanlı M1 çiplerine geçiş yaparak, tarihinde üçüncü büyük mimari dönüşümünü gerçekleştirdi. Bu geçiş, mevcut yazılımların yeni donanımda çalışabilmesi için ikili çeviri çözümlerini zorunlu kıldı. Rosetta 2, Apple'ın bu amaçla geliştirdiği en gelişmiş ikili çeviri sistemidir. Daha önce PowerPC uygulamalarını Intel tabanlı Mac'lerde çalıştırmak için kullanılan Rosetta'nın halefi olan Rosetta 2, x86_64 için derlenmiş uygulamaların Apple Silicon (ARM64) Mac'lerde sorunsuz bir şekilde çalışmasını sağlar. Bu proje, Rosetta 2'nin detaylı bir tersine mühendislik çalışmasını sunarak, bu karmaşık teknolojinin iç işleyişini anlamayı ve belgelemeyi hedeflemektedir.
Rosetta 2, hem Ahead-of-Time (AOT) hem de Just-in-Time (JIT) çeviri mekanizmalarını bir arada kullanır. AOT çeviri, uygulamaların kurulumu sırasında x86_64 ikili dosyalarını ARM64 koduna dönüştürerek, çevrilmiş kodu önbelleğe alır ve böylece sonraki başlatmalarda performansı artırır. JIT çeviri ise, dinamik olarak yüklenen veya kendi kendini değiştiren kod bloklarını yürütme sırasında talep üzerine çevirir ve verimlilik için bir çeviri önbelleği tutar. Ayrıca, x86_64 komut setini ARM64'e, SSE/AVX vektör komutlarını NEON'a çevirir ve sistem çağrılarını ARM64 eşdeğerlerine dönüştürerek farklı çağrı kurallarını ve kayıt durumlarını yönetir. Bu kapsamlı çeviri katmanı, kullanıcıların eski uygulamalarını yeni donanımda neredeyse fark etmeden kullanmalarına olanak tanır.
Apple'ın kritik mimari geçişlerinde yazılım uyumluluğunu sağlayan Rosetta 2'nin iç işleyişini anlamak, ikili çeviri teknolojileri ve işletim sistemi entegrasyonu hakkında değerli bilgiler sunuyor.