# Rosetta (software)

Rosetta es un traductor dinámico binario para Mac OS X que permite a muchas aplicaciones PowerPC correr en ciertas arquitecturas Intel de las computadoras Macintosh sin modificaciones. Apple publicó el software Rosetta en 2006 cuando hicieron la transición de las plataformas Macintosh basadas en procesadores PowerPC a la de Intel. El nombre de "Rosetta" es una referencia a la piedra rosetta, el descubrimiento que hizo posible comprender y traducir los jeroglíficos egipcios.
Rosetta está basada en la tecnología QuickTransit. No tiene interfaz de usuario, lo que llevó a Apple a describir la aplicación de Rosetta como "el software más sorprendente que jamás se ha visto".
Rosetta inicialmente estuvo incluido en el sistema operativo Mac OS X v10.4.4 "Tiger", la versión que fue inicialmente puesta a la venta junto con los primeros modelos de arquitectura Intel de Macintosh.
El software de Rosetta no está instalado por omisión en la versión Mac OS X v10.6, conocido también como "Snow Leopard", pero puede conservarse como una opción mediante el instalador o haciendo uso de la aplicación actualización de software de Apple para usuarios que necesitan correr aplicaciones basadas en PowerPC.
Rosetta no está incluido ni soportado por la versión Mac OS X v10.7 "Lion" o superior. Por lo tanto, con Lion y para futuros lanzamientos, la actual plataforma Macintosh no tiene soporte con aplicaciones de PowerPC.

## Compatibilidad

Rosetta es parte de Mac OS X para sistemas operativos Intel anteriores a Lion. El programa traduce G3, G4, e instrucciones AltiVec; sin embargo, no puede traducir instrucciones G5. Por lo tanto, las aplicaciones que dependen de conjuntos de instrucciones específicos G5 necesariamente deben ser modificados por los respectivos desarrolladores. Según Apple, la aplicaciones con alta interacción con el usuario pero con bajas necesidades computacionales (como el procesador word) pueden ser perfectamente traducidas por Rosetta, mientras que las aplicaciones con altas necesidades computacionales (como trazador de rayos), videojuegos, o Adobe Photoshop) no es posible. Las versiones existentes de las aplicaciones de producción multimedia "Pro" de Apple (como Final Cut Pro, Motion, Aperture, y Logic Pro) no son soportadas por Rosetta y requiere hacer "crossgrade" a una versión binaria universal para trabajar en computadoras Macintosh basadas en Intel con soporte en Rosetta.
Rosetta no soporta lo siguiente:
* El entorno clásico, y por lo tanto ninguna aplicación desarrollada para Mac OS 9 o versiones anteriores
* Código que inserte preferencias dentro el panel de preferencias del sistema
* Aplicaciones que requieran un procesador G5
* Aplicaciones que requieran un preciso manejo de excepción.
* Protectores de pantalla.
* Extensiones de Kernel y aplicaciones que dependan de éstas
* Aplicaciones Java instalados por omisión o aplicaciones Java con librerías JNI que no puedan ser traducidas
* Applets de Java en aplicaciones ya traducidas por Rosetta. Lo que significa que una aplicación de un navegador de internet nativo de Intel, en vez de una versión "legacy PowerPC", debe usarse para ejecutar applets de Java.
La razón por la cual la compatibilidad de Rosetta comparada con las transiciones anteriores de Apple como el emulador de 68k para PPCs reside en la implementación. Rosetta es un programa de Espacio de usuario que solo puede interceptar y emular código de nivel usuario, mientras que la anterior emulación fue integrada al sistema a un nivel mucho menor. El emulador de 68k le fue permitido tener acceso a los niveles más bajos del sistema operativo tras estar en el mismo nivel, y muy estrechamente conectado, al nanokernel de Mac OS en Macs PPC (usado posteriormente para multiprocesamiento bajo Mac OS 8.6 o superior), lo que significa que el nanokernel fue capaz de interceptar interrupciones de PowerPC, traducirlas a 68k, después interrumpe (haciendo un switch de modo mezclado), y finalmente ejecutando el código de 68k para manipular las interrupciones. Esto permite que las líneas de 68k y código PPC a ser intercaladas dentro de la misma aplicación FATbinaria. Mientras que un efecto similar pudo posiblemente haber sido logrado para un Mac OS X tras ejecutar Rosetta dentro de XNU, Apple decidió mejor implementar Rosetta como un proceso de nivel usuario para evitar un debugging excesivo y problemas potenciales de seguridad.