Interfaz que permite que los binarios de un sistema heredado o externo se ejecuten en un sistema host
En ingeniería de software , una capa de compatibilidad es una interfaz que permite que los binarios de un sistema heredado o externo se ejecuten en un sistema host. Esto traduce las llamadas del sistema para el sistema externo en llamadas del sistema nativo para el sistema host. Con algunas bibliotecas para el sistema externo, esto suele ser suficiente para ejecutar binarios externos en el sistema host. Una capa de compatibilidad de hardware consta de herramientas que permiten la emulación de hardware .
Software
Algunos ejemplos incluyen:
- Wine , que ejecuta algunos binarios de Microsoft Windows en sistemas tipo Unix utilizando un cargador de programas y la API de Windows implementada en DLL
- Las capas de compatibilidad de aplicaciones de Windows intentan ejecutar aplicaciones mal escritas o escritas para versiones anteriores de la plataforma. [1]
- Lina , que ejecuta algunos binarios de Linux en Windows, Mac OS X y sistemas similares a Unix con apariencia nativa.
- KernelEX, que ejecuta algunos programas de Windows 2000/XP en Windows 98/Me.
- Ejecutor , que ejecuta programas Mac OS "clásicos" basados en 68k en Windows, Mac OS X y Linux.
- Anbox , una capa de compatibilidad de Android para Linux .
- Hybris , biblioteca que traduce Bionic en llamadas glibc.
- Darling , una capa de traducción que intenta ejecutar binarios de Mac OS X y Darwin en Linux.
- Subsistema de Windows para Linux v1, que ejecuta binarios de Linux en Windows a través de una capa de compatibilidad que traduce las llamadas del sistema Linux en llamadas del sistema nativas de Windows.
- Cygwin , un entorno compatible con POSIX que se ejecuta de forma nativa en Windows. [2]
- 2ine, un proyecto para ejecutar aplicaciones OS/2 en Linux [3]
- Rosetta 2 , la capa de traducción de Apple incluida con macOS Big Sur para permitir que aplicaciones exclusivas x86-64 se ejecuten en hardware ARM.
- ACL permite que las aplicaciones de Android se ejecuten de forma nativa en teléfonos Tizen, webOS o MeeGoo. [4] [5] [6]
- Alien Dalvik permite que las aplicaciones de Android se ejecuten en MeeGo [7] y Meamo. [8] Alien Dalvik 2.0 también fue presentado para iOS en un iPad, sin embargo, a diferencia de MeeGo y Meamo, esta versión se ejecutaba desde la nube. [9] [10] [11]
- touchHLE es una capa de compatibilidad (conocida como un "emulador de alto nivel") para Windows y macOS creada por Andrea "hikari_no_yume" (Suecia) a principios de 2023 para ejecutar software iOS de 32 bits heredado. La capa de compatibilidad solo podía ejecutar un software, Super Monkey Ball a partir de la versión 0.1.0. A partir de la versión 0.1.2, se agregó soporte para la versión Lite de Super Monkey Ball, así como Crash Bandicoot Nitro Kart 3D y Touch & Go . [12] Ella dice que los fanáticos tendrán que "ser pacientes" para cualquier otra cosa que emular. Utiliza la traducción de código junto con la emulación de CPU cuando es necesario, y declaró específicamente que no quiere ser compatible con software de 64 bits. [13] Más tarde, se emitió una solicitud de extracción para agregar soporte para Android, lo que permitió que los dispositivos Android ejecutaran Super Monkey Ball para iOS. [14]
- ipasim es una capa de compatibilidad para Windows que utiliza WinObjC para traducir código de Objective C a código nativo de Windows. [15]
- aah (sic) es un programa para macOS para ejecutar aplicaciones iOS en macOS 10.15 "Catalina" en procesadores x86 a través de la traducción de los programas mediante el marco Catalyst . [16]
- brs-emu es una capa de compatibilidad para ejecutar el software Roku a través de BrightScript en otras plataformas: Web, Windows, macOS y Linux. [17]
Capa de compatibilidad en el kernel :
Una capa de compatibilidad evita tanto la complejidad como la penalización de velocidad de la emulación completa de hardware . Algunos programas pueden incluso ejecutarse más rápido que el original, por ejemplo, algunas aplicaciones Linux que se ejecutan en la capa de compatibilidad Linux de FreeBSD pueden funcionar mejor que las mismas aplicaciones en Red Hat Linux. Ocasionalmente se ejecutan pruebas comparativas en Wine para compararlo con los sistemas operativos basados en Windows NT. [23]
Incluso en sistemas similares, los detalles de la implementación de una capa de compatibilidad pueden ser bastante intrincados y problemáticos; un buen ejemplo es la capa de compatibilidad binaria IRIX en la versión de arquitectura MIPS de NetBSD . [24]
Una capa de compatibilidad requiere que la CPU del sistema anfitrión sea compatible (en sentido ascendente) con la del sistema externo. Por ejemplo, una capa de compatibilidad de Microsoft Windows no es posible en hardware PowerPC porque Windows requiere una CPU x86 . En este caso, se necesita una emulación completa.
Hardware
Las capas de compatibilidad de hardware incluyen herramientas que permiten la emulación de hardware . Algunas capas de compatibilidad de hardware incluyen cajas de conexiones , ya que estas pueden proporcionar compatibilidad para ciertos buses de computadora que de otra manera serían incompatibles con la máquina.
Véase también
Referencias
- ^ Charlie Russel, MVP de Microsoft para Windows Server y Tablet PC (18 de febrero de 2002). "Compatibilidad de aplicaciones en Windows XP".
- ^ "Cygwin". www.cygwin.com . Consultado el 23 de noviembre de 2019 .
- ^ "Proyecto: 2ine | Patreon".
- ^ "Tizen OS ejecutará aplicaciones de Android, con un poco de ayuda de software de terceros (Video)".
- ^ "OpenMobile ACL para webOS resucitado en Kickstarter, espera llevar aplicaciones Android al HP Touchpad".
- ^ "OpenMobile demuestra ACL para MeeGo, promete compatibilidad del 100 por ciento con aplicaciones de Android (video)".
- ^ "Myriad 'Alien Dalvik' ejecuta aplicaciones Android en cualquier teléfono... Empezando por MeeGo (Video)".
- ^ "Práctica del Myriad Alien Dalvik (vídeo)".
- ^ "Ejecutar aplicaciones Android en el iPad con Alien Dalvik de Myriad". YouTube .
- ^ "Práctica con Alien Dalvik 2.0 de Myriad en un iPad (vídeo)".
- ^ "Aplicaciones de Android para ejecutar en iPad con Alien Dalvik 2.0".
- ^ "TouchHLE: emulador de alto nivel para aplicaciones del sistema operativo iPhone". GitHub .
- ^ "El emulador de iOS de alto nivel touchHLE se ejecuta en Windows y Mac y tiene como objetivo preservar las antiguas aplicaciones de juegos de iOS".
- ^ "Un desarrollador traslada el emulador de iOS a Android, pero no hay que entusiasmarse". 24 de abril de 2023.
- ^ Joneš, Jan (27 de junio de 2019). "Emulador de iOS para Windows". hdl :20.500.11956/108316.
- ^ "Ah". GitHub .
- ^ "BRS-EMU: Emulador de BrightScript". GitHub .
- ^ "Emulación de Linux en FreeBSD".
- ^ "Emulación". freebsd.org . Consultado el 16 de marzo de 2014 .
- ^ "Una mirada al interior..." freebsd.org . Consultado el 16 de marzo de 2014 .
- ^ "Emulación binaria de NetBSD". netbsd.org . Consultado el 16 de marzo de 2014 .
- ^ "Comparación de WSL 1 y WSL 2". 20 de marzo de 2023.
- ^ BenchMark-0.9.5 Archivado el 9 de diciembre de 2010 en Wayback Machine - La Wiki Oficial del Vino
- ^ Emmanuel Dreyfus (8 de agosto de 2002). «Compatibilidad binaria de IRIX, parte 1». onlamp.com. Archivado desde el original el 21 de octubre de 2017. Consultado el 16 de marzo de 2014 .
Enlaces externos
- Tecnologías de compatibilidad de aplicaciones de Windows XP (Dave Morehouse y Todd Phillips, Microsoft Corporation, 1 de junio de 2001)