stringtranslate.com

Roseta (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 mediante la traducción automática del 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 , permitiendo que las aplicaciones PowerPC se ejecutaran en Mac basados ​​en Intel . El soporte para Rosetta dejó de ser compatible con el lanzamiento de Mac OS X Lion (10.7) en 2011.

Rosetta 2, presentada en 2020 como componente de macOS Big Sur , es parte de la transición de Mac de 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 el siguiente.

Con el lanzamiento de Power Macintosh , el emulador Mac 68K forma parte del Sistema 7.1.2 y posteriores. Este emulador utiliza funciones 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 es capaz de interceptar interrupciones de PowerPC, traducirlas a interrupciones de 68k (luego realizando un cambio de modo mixto, si es necesario) y luego ejecutar código de 68k para manejar las interrupciones. Esto permite intercalar código de 68k y PowerPC dentro del mismo binario grueso .

roseta

Apple lanzó Rosetta en 2006 tras la transición de Mac a procesadores Intel desde PowerPC. Estaba integrado en Mac OS X v10.4.4 "Tiger", la versión que se lanzó con las primeras Mac basadas 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 notificar al usuario, lo que llevó a Apple a describir Rosetta como "el software más sorprendente que jamás verás". [5] Rosetta se puede instalar opcionalmente en Mac OS X v10.6 "Snow Leopard". [6] Rosetta no está incluida ni es compatible con Mac OS X Lion (10.7) o posterior, por lo que no puede ejecutar aplicaciones PowerPC. [6]

Debido a las mayores diferencias arquitectónicas entre los procesadores Intel y PowerPC, Rosetta opera a un nivel más alto que el emulador 68000, como un programa a nivel de usuario que sólo puede interceptar y emular código a nivel de usuario. Traduce instrucciones G3 , G4 y AltiVec , pero no instrucciones G5 . Aunque la mayoría del software comercial para Mac basados ​​en PowerPC era compatible con estos requisitos (los sistemas G4 todavía se usaban ampliamente en ese momento), sus desarrolladores debían modificar cualquier aplicación que dependiera de instrucciones específicas de G5 para que funcionara en procesadores Intel compatibles con Rosetta. Mac basados ​​en Apple advirtió que las aplicaciones con una gran interacción del usuario pero bajas necesidades computacionales (como los procesadores de texto ) serían las más adecuadas para usar con Rosetta, y las aplicaciones con altas necesidades computacionales (como los juegos, AutoCAD o Photoshop ) no. [7] Las versiones PowerPC preexistentes de las aplicaciones de producción multimedia "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 un binario universal. versión para funcionar en Mac basadas en Intel compatibles con Rosetta.

Rosetta tampoco admite lo siguiente: [9]

Roseta 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 Apple Silicon. [3] [10]

Para instalar Rosetta 2 en una Mac Apple Silicon hay dos formas de hacerlo: usando la Terminal para instalar el programa directamente, o intentando abrir una aplicación compilada para x86-64, 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. una Mac de silicona de Apple. [11]

El desempeño de Rosetta 2 ha sido muy elogiado. [12] [13] En algunas pruebas comparativas, los programas solo 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 la compatibilidad con el orden de memoria x86-64 en el SOC M1 de Apple. [14] El SOC también tiene instrucciones dedicadas para calcular indicadores x86. [15]

Aunque Rosetta 2 funciona con 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 exclusiva para 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 mediante traducción automáticamente. 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 en tiempo de ejecución, que debe instalarse en el sistema operativo invitado. Ha habido casos [20] de desarrolladores que han instalado este binario en 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.

Ver también

Referencias

  1. ^ "Ejecución de binarios 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 Core Duo iMac presentan nuevos y rápidos chips". Macmundo .
  3. ^ ab Warren, Tom (22 de junio de 2020). "Apple cambiará las Mac a sus propios procesadores a partir de finales de este año". El borde . 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. ^ "Roseta". Manzana. Archivado desde el original el 13 de enero de 2006 . Consultado el 5 de septiembre de 2011 .
  6. ^ ab Personal de AppleInsider (26 de febrero de 2011). "Mac OS X Lion lanza Front Row, Java runtime, 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 . Manzana. Archivado desde el original (PDF) el 3 de agosto de 2012 . Consultado el 5 de septiembre de 2011 .
  8. ^ "Aplicaciones universales". Manzana. 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 . Manzana. Archivado desde el original (PDF) el 3 de agosto de 2012 . Consultado el 5 de septiembre de 2011 .
  10. ^ Mayo, Benjamín (22 de junio de 2020). "Apple anuncia la transición de la arquitectura Mac de Intel a sus propios chips ARM y ofrece una ruta de emulación". 9to5Mac . Consultado el 23 de junio de 2020 .
  11. ^ Conferencia magistral de la WWDC2020. Apple Inc. 22 de junio de 2020. El evento ocurre a las 1h39m37s. Traduce las aplicaciones cuando las instalas, para que puedan iniciarse inmediatamente y responder instantáneamente. Rosetta 2 también puede traducir código sobre la marcha cuando sea necesario.
  12. ^ Evans, Jonny (19 de noviembre de 2020). "Todo lo que necesita saber sobre Rosetta 2 en Apple Silicon Macs". Mundo de la informática . Consultado el 8 de diciembre de 2020 .
  13. ^ "Sí, la MacBook Pro M1 de Apple es poderosa, pero es la duración de la batería lo que te dejará boquiabierto". TechCrunch . 17 de noviembre de 2020 . Consultado el 8 de diciembre de 2020 .
  14. ^ @ErrataRob (25 de noviembre de 2020). "4/ Así que Apple simplemente hizo trampa. Agregaron el orden de memoria de Intel a su CPU. Cuando ejecutan el código x86 traducido, cambian el modo de la CPU para ajustarse al orden de memoria de Intel" (Tweet) - vía Twitter .
  15. ^ Dougall, J (9 de noviembre de 2022). "¿Por qué Rosetta 2 es rápida?" . Consultado el 15 de agosto de 2023 . Extensiones de manipulación de banderas 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. ^ "Utilice Office para Mac con Rosetta y Apple Silicon". soporte.microsoft.com . Consultado el 21 de junio de 2021 .
  19. ^ Probado, Liam (9 de junio de 2022). "Apple ofrece soporte mejorado para Linux en macOS 13". El registro . 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 Técnica . Consultado el 6 de enero de 2023 .
  21. ^ "Virtualización: ejecución de binarios Intel en máquinas virtuales Linux con Rosetta". Desarrollador de Apple . Consultado el 6 de enero de 2023 .

enlaces externos