stringtranslate.com

Rosetta (software)

Rosetta es un traductor binario dinámico desarrollado por Apple Inc. para macOS , una capa de compatibilidad de aplicaciones entre diferentes arquitecturas de conjuntos de instrucciones . Permite una transición a hardware más nuevo, traduciendo automáticamente el software. El nombre es una referencia a la Piedra Rosetta , el artefacto que permitió la traducción de los jeroglíficos egipcios . [2]

La primera versión de Rosetta, introducida en 2006 en Mac OS X Tiger , fue parte de la transición de Mac de procesadores PowerPC a procesadores Intel , lo que permitió que las aplicaciones PowerPC se ejecutaran en Macs basadas en Intel . El soporte para Rosetta se abandonó con el lanzamiento de Mac OS X Lion (10.7) en 2011.

Rosetta 2, presentado en 2020 como un componente de macOS Big Sur , es parte de la transición de Mac de los procesadores Intel a Apple Silicon , lo que permite que las aplicaciones Intel se ejecuten en Mac basadas en Apple Silicon . [3]

Fondo

Macintosh ha utilizado CPU con varias arquitecturas de conjuntos de instrucciones diferentes : la serie Motorola 68000 , PowerPC , Intel x86 y ARM64 en silicio de Apple . Cada arquitectura de conjunto de instrucciones es incompatible con su predecesora, lo que requiere un plan de transición basado en una capa de software para emular el conjunto de instrucciones anterior en la siguiente.

Con el lanzamiento de Power Macintosh , el emulador Mac 68K es parte de System 7.1.2 y posteriores. Este emulador utiliza características de PowerPC y está integrado en los niveles más bajos del sistema operativo, integrado con el nanokernel de Mac OS . Esto significa que el nanokernel puede interceptar interrupciones de PowerPC, traducirlas a interrupciones de 68k (luego hacer un cambio de modo mixto, si es necesario) y luego ejecutar código de 68k para manejar las interrupciones. Esto permite que el código de 68k y PowerPC se intercalen dentro del mismo binario fat .

Rosetta

Apple lanzó Rosetta en 2006 tras la transición de los Mac a procesadores Intel desde PowerPC. Se integró en Mac OS X v10.4.4 "Tiger", la versión que se lanzó con los primeros Mac basados ​​en Intel , y permite que muchas aplicaciones PowerPC se ejecuten en computadoras Mac basadas en Intel sin modificaciones. Rosetta se basa en la tecnología QuickTransit . [4] No tiene interfaz gráfica de usuario y se inicia según sea necesario sin notificación al usuario, lo que llevó a Apple a describir a Rosetta como "el software más asombroso que nunca verás". [5] Rosetta se puede instalar opcionalmente en Mac OS X v10.6 "Snow Leopard". [6] Rosetta no está incluido ni es compatible con Mac OS X Lion (10.7) (lanzado en 2011) o posterior, que por lo tanto no puede ejecutar aplicaciones PowerPC. [6]

Debido a las mayores diferencias arquitectónicas entre los procesadores Intel y PowerPC, Rosetta opera a un nivel superior al del emulador 68000, como un programa de nivel de usuario que solo puede interceptar y emular código de nivel de usuario. Traduce instrucciones G3 , G4 y AltiVec , pero no instrucciones G5 . Aunque la mayoría del software comercial para Macs basados ​​en PowerPC era compatible con estos requisitos (los sistemas G4 todavía se usaban ampliamente en ese momento), cualquier aplicación que dependiera de instrucciones específicas de G5 tenía que ser modificada por sus desarrolladores para que funcionara en Macs basados ​​en Intel compatibles con Rosetta. Apple advirtió que las aplicaciones con una gran interacción del usuario pero con bajas necesidades computacionales (como procesadores de texto ) serían las más adecuadas para usar con Rosetta, y las aplicaciones con altas necesidades computacionales (como juegos, AutoCAD o Photoshop ) no lo serían. [7] Las versiones PowerPC preexistentes de las aplicaciones de producción de medios "Pro" de Apple (como Final Cut Pro , Motion, Aperture y Logic Pro) no son compatibles con Rosetta y requieren una "actualización cruzada" [8] a una versión binaria universal para funcionar en Macs basados ​​en Intel compatibles con Rosetta.

Rosetta tampoco admite lo siguiente: [9]

Rosetta 2

En 2020, Apple anunció que Rosetta 2 se incluiría con macOS Big Sur , para ayudar en la transición de Mac al silicio de Apple . El software permite que muchas aplicaciones compiladas exclusivamente para su ejecución en procesadores basados ​​en x86-64 se traduzcan para su ejecución en el silicio de Apple. [3] [10]

Hay dos formas de instalar Rosetta 2 en una Mac con Apple Silicon : utilizando la Terminal para instalar el programa directamente o intentando abrir una aplicación compilada para x86-64, lo que abrirá una ventana de instalación.

Además del soporte de traducción justo a tiempo (JIT), Rosetta 2 ofrece compilación anticipada (AOT), con el código x86-64 completamente traducido, solo una vez, cuando se instala una aplicación sin un binario universal en una Mac con silicio de Apple. [11]

El rendimiento de Rosetta 2 ha sido muy elogiado. [12] [13] En algunas pruebas comparativas, los programas que solo funcionan con x86-64 funcionaron mejor con Rosetta 2 en una Mac con un SOC Apple M1 que de forma nativa en una Mac con un procesador Intel x86-64. Una de las razones clave por las que Rosetta 2 proporciona un nivel tan alto de eficiencia de traducción es el soporte de ordenación de memoria x86-64 en el SOC Apple M1. [14] El SOC también tiene instrucciones dedicadas para calcular indicadores x86. [15]

Aunque Rosetta 2 funciona para la mayoría del software, algunos programas no funcionan en absoluto [16] o se informa que son "lentos". [17]

Al igual que la primera versión, Rosetta 2 normalmente no requiere la intervención del usuario. Cuando un usuario intenta iniciar una aplicación que solo funciona con x86-64 por primera vez, macOS le solicita que instale Rosetta 2 si aún no está disponible. Los lanzamientos posteriores de programas x86-64 se ejecutarán automáticamente mediante traducción. También existe una opción para forzar la ejecución de un binario universal como código x86-64 a través de Rosetta 2, incluso en una máquina basada en ARM. [18]

Desde macOS Ventura , los usuarios que ejecutan máquinas virtuales con Linux como sistema operativo invitado pueden utilizar Rosetta 2 para ejecutar código x86-64 compilado para Linux, [19] dentro de la máquina virtual. Rosetta 2 funciona como un binario de tiempo de ejecución, que debe instalarse en el sistema operativo invitado. Ha habido casos [20] de desarrolladores que instalan este binario de tiempo de ejecución en hardware de terceros, siempre que incluya una CPU que admita al menos el conjunto de instrucciones ARMv8.2-A ; el orden de la memoria será diferente del x86 nativo. Algunos desarrolladores han notado que podría violar los acuerdos de licencia de macOS, ya que el tiempo de ejecución está incluido [21] dentro del marco de virtualización de Apple.

En macOS Sequoia , Rosetta 2 se ha actualizado para admitir la traducción de instrucciones AVX2 de procesadores Intel con el fin de mejorar la compatibilidad de los juegos que se trasladan mediante Game Porting Toolkit de Apple . [ cita requerida ]

Véase también

Referencias

  1. ^ "Ejecución de binarios de Intel en máquinas virtuales Linux con Rosetta". Apple Inc. Consultado el 7 de agosto de 2022 .
  2. ^ Norr, Henry (27 de enero de 2006). "Los iMacs con procesadores Core Duo estrenan nuevos y veloces chips". Macworld .
  3. ^ ab Warren, Tom (22 de junio de 2020). "Apple cambiará los Macs a sus propios procesadores a partir de finales de este año". The Verge . Consultado el 22 de junio de 2020 .
  4. ^ "El cerebro detrás de Rosetta de Apple: Transitive". CNET . 8 de junio de 2005 . Consultado el 9 de enero de 2023 .
  5. ^ "Rosetta". Apple. Archivado desde el original el 13 de enero de 2006. Consultado el 5 de septiembre de 2011 .
  6. ^ ab AppleInsider Staff (26 de febrero de 2011). «Mac OS X Lion elimina Front Row, Java Runtime y Rosetta». AppleInsider . AppleInsider, Inc. Archivado desde el original el 29 de abril de 2014 . Consultado el 27 de febrero de 2011 .
  7. ^ "Rosetta" (PDF) . Directrices universales de programación binaria, segunda edición . Apple. Archivado desde el original (PDF) el 3 de agosto de 2012. Consultado el 5 de septiembre de 2011 .
  8. ^ "Aplicaciones universales". Apple. Archivado desde el original el 3 de marzo de 2016 . Consultado el 5 de agosto de 2019 .
  9. ^ "¿Qué se puede traducir?" (PDF) . Directrices universales de programación binaria, segunda edición . Apple. Archivado desde el original (PDF) el 3 de agosto de 2012. Consultado el 5 de septiembre de 2011 .
  10. ^ Mayo, Benjamin (22 de junio de 2020). «Apple anuncia la transición de la arquitectura Mac de Intel a sus propios chips ARM y ofrece una vía de emulación». 9to5Mac . Consultado el 23 de junio de 2020 .
  11. ^ Keynote de la WWDC2020. Apple Inc. 22 de junio de 2020. El evento ocurre a las 1h39m37s. Traduce las aplicaciones cuando las instalas, por lo que pueden iniciarse inmediatamente y responder al instante. Rosetta 2 también puede traducir código sobre la marcha cuando es necesario.
  12. ^ Evans, Jonny (19 de noviembre de 2020). «Todo lo que necesitas saber sobre Rosetta 2 en los Mac con Apple Silicon». Computerworld . Consultado el 8 de diciembre de 2020 .
  13. ^ "Sí, la MacBook Pro M1 de Apple es potente, pero lo que te dejará boquiabierto es la duración de la batería". TechCrunch . 17 de noviembre de 2020 . Consultado el 8 de diciembre de 2020 .
  14. ^ "Análisis de los modelos de ordenamiento de memoria del Apple M1".
  15. ^ Dougall, J (9 de noviembre de 2022). "¿Por qué Rosetta 2 es rápido?" . Consultado el 15 de agosto de 2023. Extensiones de manipulación de indicadores ARM... La extensión secreta de Apple...
  16. ^ Carlton, Sam (8 de diciembre de 2020). "ThatGuySam/doesitarm". GitHub . Consultado el 8 de diciembre de 2020 .
  17. ^ "r/mac - Aplicaciones en Rosetta 2". reddit . 29 de noviembre de 2020 . Consultado el 8 de diciembre de 2020 .
  18. ^ "Usar Office para Mac con Rosetta y silicio de Apple". support.microsoft.com . Consultado el 21 de junio de 2021 .
  19. ^ Proven, Liam (9 de junio de 2022). «Apple ofrece compatibilidad mejorada con Linux en macOS 13». The Register . Consultado el 6 de enero de 2023 .
  20. ^ Cunningham, Andrew (7 de junio de 2022). «Apple permitirá que las máquinas virtuales Linux ejecuten aplicaciones Intel con Rosetta en macOS Ventura». Ars Technica . Consultado el 6 de enero de 2023 .
  21. ^ "Virtualización: ejecución de binarios de Intel en máquinas virtuales Linux con Rosetta". Desarrollador de Apple . Consultado el 6 de enero de 2023 .

Enlaces externos