Rosetta, un émulateur pas comme les autres
Apple commence a distribuer aux développeurs les documentations qui leur permettront d'effectuer une transition en douceur vers l'architecture x86. Dans l'une d'entre elles, nommée Universal Binary Programming Guidelines, Apple nous en apprend un peu plus sur Rosetta, le super émulateur PowerPC pour Intel.
Tout d'abord, cnet vient de confirmer que Rosetta avait été développé conjointement avec Transitive, une compagnie créée par des universitaires anglais, dont les technologies avancées d'émulation sont déjà utilisées par SGI entre autre.
Rosetta permet donc de traduire à la volée du code PowerPC en x86. A la différence d'un émulateur plus classique, Rosetta permet de buffériser le code avant qu'il soit exécuté. Ainsi, le code est traduit en binaire x86 par bloc, puis est exécuté. La technologie de Transitive permet en plus d'optimiser ces bouts de codes en fonction de leur utilisation. Plus ils seront utilisés, plus ils seront optimisés en plus d’êtres disposés en mémoire cache (donc déjà traduits). Le gain de performance est donc significatif.
Rosetta dispose cependant de quelques limitations :
- Impossible d'exécuter du code Altivec
- Impossible d'exécuter une application Mac OS 9
- Impossible d'exécuter du code spécifique au G4 ou G5. Seul le G3 est émulé.
- Impossible d'interagir avec une extension du kernel ou d'émuler une telle extension.
- Impossible de faire tourner les applications trop gourmandes en temps machine comme les grosses applications 3D ou de raytracing.
Rosetta sera aussi utilisé dans le cas où l'application, même si elle est universelle et contient du code x86 et PPC, fait appel à des plugins uniquement PPC.
Mais le principal avantage dans cette technologie est que comme pour l'émulateur 68k intégré à Mac OS 9 à son époque, les applications se lancent de manière totalement transparente pour l'utilisateur et partagent l'espace de travail avec les applications natives x86.
Même si la vitesse n'est pas phénoménale, l'utilisation reste donc souple et suffisamment confortable pour qu'Apple réussisse une cohabitation en douceur. D'autant que Transitive possède dans ses cartons la technologie inverse, c’est-à-dire qu'elle est capable de fournir à Apple la possibilité de traduire du code x86 pour un processeur PowerPC.
Et si Apple s'affranchissait complètement du processeur et continuait à vendre indifféremment des PowerPC et des x86 pour les nombreuses années à venir ?