Sistema binario universal

Archivos binarios de arquitectura múltiple de Apple
Logotipo utilizado para indicar una aplicación universal

El formato binario universal es un formato para archivos ejecutables que se ejecutan de forma nativa tanto en Macs basados ​​en PowerPC como en x86 o en Macs basados ​​en Intel 64 y ARM64 . El formato se originó en NeXTStep como " Binarios multiarquitectura ", y el concepto se conoce más generalmente como binario fat , como se ve en Power Macintosh .

Con el lanzamiento de Mac OS X Snow Leopard , y antes de eso, desde el paso a las arquitecturas de 64 bits en general, algunos editores de software como Mozilla [1] han utilizado el término "universal" para referirse a un binario grueso que incluye compilaciones para sistemas i386 (Intel de 32 bits) y x86_64. El mismo mecanismo que se utiliza para seleccionar entre las compilaciones PowerPC o Intel de una aplicación también se utiliza para seleccionar entre las compilaciones de 32 bits o 64 bits de las arquitecturas PowerPC o Intel.

Sin embargo, Apple siguió exigiendo compatibilidad nativa tanto con PowerPC como con Intel para otorgar a los editores de software de terceros permiso para usar las marcas comerciales de Apple relacionadas con binarios universales. [2] Apple no especifica si dichos editores de software de terceros deben (o deberían) agrupar compilaciones separadas para todas las arquitecturas.

Los binarios universales se introdujeron en Mac OS en la Conferencia Mundial de Desarrolladores de Apple de 2005 como un medio para facilitar la transición de la arquitectura PowerPC existente a los sistemas basados ​​en procesadores Intel, que comenzaron a distribuirse en 2006. Los binarios universales suelen incluir versiones PowerPC y x86 de una aplicación compilada. El sistema operativo detecta un binario universal por su encabezado y ejecuta la sección adecuada para la arquitectura en uso. Esto permite que la aplicación se ejecute de forma nativa en cualquier arquitectura compatible, sin ningún impacto negativo en el rendimiento más allá de un aumento en el espacio de almacenamiento ocupado por el binario más grande.

A partir de Mac OS X Snow Leopard, solo se admiten Macs basados ​​en Intel, por lo que el software que depende específicamente de capacidades presentes solo en Mac OS X 10.6 o más reciente solo se ejecutará en Macs basados ​​en Intel y, por lo tanto, no requiere binarios fat de Intel/PPC. Además, a partir de OS X Lion , solo se admiten Macs Intel de 64 bits, por lo que el software que depende específicamente de nuevas características en OS X 10.7 o más reciente solo se ejecutará en procesadores de 64 bits y, por lo tanto, no requiere binarios fat de 32 bits/64 bits. [3] [4] Los binarios fat solo serían necesarios para el software que está diseñado para tener compatibilidad con versiones anteriores de Mac OS X que se ejecutan en hardware más antiguo.

El nuevo formato binario Universal 2 se presentó en la Conferencia Mundial de Desarrolladores de 2020. [5] Universal 2 permite que las aplicaciones se ejecuten tanto en computadoras Macintosh basadas en Intel x86-64 como en ARM64 , para permitir la transición al silicio de Apple .

Motivación

Existen dos soluciones alternativas generales. La primera consiste en proporcionar simplemente dos binarios separados, uno compilado para la arquitectura x86 y otro para la arquitectura PowerPC. Sin embargo, esto puede resultar confuso para los usuarios de software que no estén familiarizados con la diferencia entre ambos, aunque la confusión se puede solucionar mediante una mejor documentación o el uso de CD híbridos . La otra alternativa consiste en confiar en la emulación de una arquitectura por parte de un sistema que ejecute la otra arquitectura. Este enfoque produce un menor rendimiento y, en general, se considera una solución provisional que se utilizará solo hasta que estén disponibles binarios universales o binarios compilados específicamente, como en el caso de Rosetta .

Los binarios universales son más grandes que los binarios de una sola plataforma, porque se deben almacenar varias copias del código compilado. Sin embargo, debido a que las dos arquitecturas comparten algunos recursos no ejecutables, el tamaño del binario universal resultante puede ser (y normalmente lo es) menor que los tamaños combinados de dos binarios individuales. Tampoco requieren RAM adicional porque solo se carga una de esas dos copias para su ejecución.

Historia

El concepto de binario universal se originó con los " Binarios multiarquitectura " en NeXTSTEP , la base arquitectónica principal de Mac OS X. NeXTSTEP admite binarios universales para que una imagen ejecutable pueda ejecutarse en múltiples arquitecturas, incluidas m68k de Motorola , x86 de Intel , SPARC de Sun Microsystems y PA-RISC de Hewlett-Packard . NeXTSTEP y macOS utilizan el archivo Mach-O como formato binario subyacente al binario universal.

Apple utilizó anteriormente una técnica similar durante la transición de los procesadores 68k a PowerPC a mediados de la década de 1990. Estos ejecutables de doble plataforma se denominan binarios fat , en referencia a su mayor tamaño de archivo.

Xcode 2.1 de Apple permite la creación de estos archivos, una característica nueva en esa versión. Una aplicación sencilla desarrollada con independencia del procesador en mente puede requerir muy pocos cambios para compilarse como un binario universal, pero una aplicación compleja diseñada para aprovechar las características específicas de la arquitectura puede requerir una modificación sustancial. Las aplicaciones creadas originalmente con otras herramientas de desarrollo pueden requerir modificaciones adicionales. Estas son las razones que se han dado para explicar el retraso entre la introducción de los ordenadores Macintosh basados ​​en Intel y la disponibilidad de aplicaciones de terceros en formato binario universal. El hecho de que Apple entregue ordenadores basados ​​en Intel varios meses antes de lo previsto es otro factor que explica esta diferencia.

Xcode 2.4 de Apple lleva el concepto de binarios universales aún más lejos, al permitir la creación de binarios de cuatro arquitecturas (32 y 64 bits para Intel y PowerPC), permitiendo así que un único ejecutable aproveche al máximo las capacidades de la CPU de cualquier máquina Mac OS X.

Aplicaciones universales

Muchos desarrolladores de software han proporcionado actualizaciones binarias universales para sus productos desde la WWDC de 2005. En diciembre de 2008, el sitio web de Apple enumeraba más de 7500 aplicaciones universales. [6]

El 16 de abril de 2007, Adobe Systems anunció el lanzamiento de Adobe Creative Suite 3 , la primera versión de la suite de aplicaciones en formato binario universal. [7]

Desde 2006 a 2010, muchas aplicaciones de Mac OS X fueron trasladadas al formato binario universal, incluyendo QuarkXPress , Final Cut Studio de Apple , Adobe Creative Suite , Microsoft Office 2008 y Shockwave Player con la versión 11; después de ese momento, la mayoría se convirtieron en aplicaciones exclusivas de Intel. Los programas PowerPC de 32 bits no universales se ejecutarán en Mac Intel con Mac OS X 10.4, 10.5 y 10.6 (en la mayoría de los casos), pero con un rendimiento no óptimo, ya que deben ser traducidos sobre la marcha por Rosetta ; no se ejecutarán en Mac OS X 10.7 Lion y posteriores, ya que Rosetta ya no es parte del sistema operativo.

iOS

Apple ha utilizado el mismo formato binario como binarios universales para aplicaciones iOS de forma predeterminada en múltiples ocasiones de coexistencia arquitectónica: alrededor de 2010 durante la transición armv6-armv7-armv7s y alrededor de 2016 durante la transición armv7-arm64. La App Store reduce automáticamente los binarios. No se derivaron nombres comerciales para esta práctica, ya que es solo una preocupación del desarrollador. [8]

Universal 2

El 22 de junio de 2020, Apple anunció una transición permanente de dos años de los procesadores basados ​​en x86-64 de Intel a los procesadores Apple basados ​​en ARM64 , comenzando con macOS Big Sur a fines de 2020. [9] Para ayudar en esta transición, se introdujo un nuevo binario Universal 2 para permitir que las aplicaciones se ejecuten en procesadores basados ​​en x86-64 o en procesadores basados ​​en ARM64. [5]

Herramientas

La herramienta principal para manejar (crear o dividir) binarios universales es el lipocomando que se encuentra en Xcode . El filecomando en macOS y varios otros sistemas similares a Unix puede identificar binarios universales Mach-O e informar la compatibilidad con la arquitectura. [10] El generador de perfiles del sistema de Snow Leopard proporciona esta información en la pestaña Aplicaciones .

Véase también

Referencias

  1. ^ "Firefox 4 para Mac OS X: bajo el capó". 10 de noviembre de 2010. Consultado el 3 de marzo de 2017 .
  2. ^ "Logotipo universal de Mac OS X: directrices para licencias de logotipo universal de Mac OS X" (PDF) . Apple Inc. Junio ​​de 2007 . Consultado el 18 de octubre de 2013 .
  3. ^ "Mac OS X: preguntas frecuentes sobre el kernel de 64 bits". Apple Inc. 4 de octubre de 2012. Consultado el 18 de octubre de 2013 .
  4. ^ "¿Funciona Mac OS X 10.7 "Lion" en Macs con EFI de 32 bits? ¿Cómo se compara el rendimiento de Mac OS X 10.7 "Lion" con Mac OS X 10.6 "Snow Leopard" en pruebas del "mundo real"? @ EveryMac.com". everymac.com . Kyle Media . Consultado el 6 de octubre de 2017 .
  5. ^ ab Axon, Samuel (22 de junio de 2020). «Esta es la hoja de ruta de Apple para alejar a los primeros Mac de Intel». Ars Technica . Consultado el 23 de junio de 2020 .
  6. ^ "Guía de productos Macintosh: aplicaciones universales". Apple Computer . Consultado el 22 de diciembre de 2008 .
  7. ^ "Adobe lanza Creative Suite 3". Adobe Systems . 16 de abril de 2007. Archivado desde el original el 8 de julio de 2012 . Consultado el 18 de octubre de 2013 .
  8. ^ "lipo - binarios de grasa de iOS y adelgazamiento". Desbordamiento de pila .
  9. ^ Amadeo, Ron (22 de junio de 2020). «Apple anuncia macOS 11, «Big Sur», con énfasis en el diseño». Ars Technica . Consultado el 23 de junio de 2020 .
  10. ^ stany (6 de septiembre de 2005). "Mac OS X: Cómo eliminar la grasa de los archivos Mach-O fat". theconsultant.net . Consultado el 18 de octubre de 2013 .
  • Centro de recursos para la transición de desarrolladores de Apple
  • Pautas de programación binaria universal de Apple
  • Introducción al binario universal de Apple
Retrieved from "https://en.wikipedia.org/w/index.php?title=Universal_binary&oldid=1243907015"