Universal binaries
Universal binaries ou UB est le terme utilisé par Apple pour désigner des applications capables de s'exécuter nativement sur des processeurs utilisant un jeu d'instructions différent. Elles sont utilisées lors des transitions effectuées sur ses produits, vers Intel puis vers ARM. Elles ne sont compatibles qu'avec certaines plateformes d'Apple.
Le système détermine si une application est en Universal binaries grâce à son en-tête. Une application en Universal binaries contient deux fichiers binaires, un pour chaque type de processeur. Lorsque le système lance une application en Universal binaries, il choisit le bon fichier binaire et l'exécute.
Toutes les applications ne sont pas en Universal binaries. Pour une application qui n'est pas en Universal binaries, le système utilise Rosetta pour traduire le fichier binaire de l'application compilé pour un certain jeu d'instructions en un code exécutable pour des processeurs dans un jeu d'instructions différent.
Universal Applications
modifierUniversal binaries a été présenté lors de la WWDC 2005 à l'occasion de l'annonce du passage du jeu d'instructions PowerPC vers x86 d'Intel.
De la version 2.1 à 3.2.6 d'Xcode, il a été possible de compiler des applications en Universal binaries.
Depuis Mac OS X v10.7 (Lion), Rosetta n'est plus intégré.
Universal 2
modifierEn 2020, lors de la WWDC 2020, avec l'arrivée des processeurs Apple Silicon (Apple M1), Universal 2 est présenté pour la transition depuis le jeu d'instructions x86 d'Intel vers ARM64. Une nouvelle version de Rosetta pour la traduction est également intégrée, Rosetta 2.
Xcode 12 est nécessaire pour créer une application Universal 2.