Rosetta

furiet

Membre actif
23 Mai 2005
701
8
84
Bonjour
Je voudrais juste savoir comment fonctionne Rosetta : je suppose que c'est lors du chargement d'un programme compilé pour processeur PPC que les instructions PPC lues sur le disque dur sont sur demande du chargeur traduites par l'émulateur une à une et remplacées en mémoire centrale par la séquence équivalente d'instructions Intel ? Il faut donc qu'à la compilation on indique qu'il s'agit d'un programme PPC, indication incluse dans le code compildé et repérée par le chargeur ?
 
Bonjour
Je voudrais juste savoir comment fonctionne Rosetta : je suppose que c'est lors du chargement d'un programme compilé pour processeur PPC que les instructions PPC lues sur le disque dur sont sur demande du chargeur traduites par l'émulateur une à une et remplacées en mémoire centrale par la séquence équivalente d'instructions Intel ? Il faut donc qu'à la compilation on indique qu'il s'agit d'un programme PPC, indication incluse dans le code compildé et repérée par le chargeur ?
Bonjour,

Je pense que si on utilise Xcode sur une machine à processeur PPC le code résultant sera pour ces machines sans autre choix possibles.

Rosetta ne se contente pas de transformer les instructions mais surtout il repère et adapte les instructions faisant appel à la boîte à outil du Mac. (Human Interface Guideline)

Par contre utiliser Xcode avec une machine à processeur Intel doit permettre la compilation en Universal Binary ou en Intel uniquement… A vérifier…

J'ai pas installé encore Xcode pour Lion afin de voir qu'elles étaient les options de compilations mais je devrais le faire sous peu…

Avant Xcode j'utilisais "CodeWarrior" mais c'est dépassé… :p
 
C'est bien le compilateur qui se charge de fabriquer ce qu'il faut. Dans l'entête des fichiers binaires est indiqué la ou les plates-formes pour lesquelles le fichier a été construit (on peut avoir autant d'architectures que nécessaire : PPC, Intel 32 ou Intel 64 par exemple).
Ça vaut autant pour les exécutables que les bibliothèques.

Je pense que les versions de XCode pour Tiger étaient déjà capables de produire du code "gras" (fat binary) sur des machines PPC autant que Intel, puisque justement l'OS était déjà bi-plateforme. Pour Leopard même chose.
 
Dernière édition: