Articulo de referencia

Capa de compatibilidad

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 anfitrión. Esto tr...

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 anfitrión. Esto traduce las llamadas al sistema del sistema externo a llamadas al sistema nativo del sistema anfitrión. Con algunas bibliotecas para el sistema externo, esto suele ser suficiente para ejecutar binarios externos en el sistema anfitrión. Una capa de compatibilidad de hardware consiste en herramientas que permiten la emulación de hardware .

Software

Algunos ejemplos son:

  • 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 ]
  • KernelEX, que ejecuta algunos programas de Windows 2000/XP en Windows 98/Me, y programas de Windows XP en Windows 2000.
  • Prism es un emulador de Microsoft para dispositivos Windows con procesador ARM que traduce el código subyacente del software creado para binarios x86 y x64 tradicionales de Windows 11 24H2 [ 2 ].
  • El Subsistema de Windows para Linux v1 ejecuta binarios de Linux en Windows a través de una capa de compatibilidad que traduce las llamadas al sistema de Linux en llamadas al sistema nativas de Windows.
  • Lina , que ejecuta algunos binarios de Linux en Windows, Mac OS X y sistemas tipo Unix con una apariencia y funcionamiento nativos.
  • Anbox , una capa de compatibilidad de Android para Linux .
  • ACL permite que las aplicaciones de Android se ejecuten de forma nativa en teléfonos Tizen, webOS o MeeGoo. [ 3 ] [ 4 ] [ 5 ]
  • Alien Dalvik permite que las aplicaciones de Android se ejecuten en MeeGo [ 6 ] y Meamo. [ 7 ] Alien Dalvik 2.0 también se presentó para iOS en un iPad; sin embargo, a diferencia de MeeGo y Meamo, esta versión se ejecutaba desde la nube. [ 8 ] [ 9 ] [ 10 ]
  • Darling , una capa de traducción que intenta ejecutar binarios de Mac OS X y Darwin en Linux.
  • Rosetta 2 , la capa de traducción de Apple incluida en macOS Big Sur para permitir que las aplicaciones exclusivas de x86-64 se ejecuten en hardware ARM.
  • Executor , que ejecuta programas "clásicos" de Mac OS basados ​​en 68k en Windows, Mac OS X y Linux.
  • touchHLE es una capa de compatibilidad (conocida como "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.
  • ipasim es una capa de compatibilidad para Windows que utiliza WinObjC para traducir código de Objective C a código nativo de Windows. [ 11 ]
  • aah (sic) es un programa para macOS que permite ejecutar aplicaciones de iOS en macOS 10.15 "Catalina" en procesadores x86 mediante la traducción de los programas a través del marco Catalyst . [ 12 ]
  • Hybris , una biblioteca que traduce llamadas a Bionic en llamadas a glibc.
  • 2ine , un proyecto para ejecutar aplicaciones OS/2 en Linux [ 13 ]
  • Cygwin , un entorno compatible con POSIX que se ejecuta de forma nativa en Windows. [ 14 ]
  • brs-emu es una capa de compatibilidad para ejecutar software de Roku a través de BrightScript en otras plataformas: Web, Windows, macOS y Linux. [ 15 ]
  • FEX-Emu ejecuta aplicaciones Linux x86 en Linux ARM64 y se puede combinar con Wine para ejecutar aplicaciones de Windows.
  • OneCoreAPI, que intenta ejecutar programas para Windows Vista y versiones posteriores en Windows XP. [ 16 ]
  • VxKex, un conjunto de extensiones para permitir que Windows 7 ejecute versiones más recientes de programas diseñados para Windows 10 y versiones posteriores. [ 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 del hardware . Algunos programas pueden incluso ejecutarse más rápido que el original; por ejemplo , algunas aplicaciones de Linux que se ejecutan en la capa de compatibilidad de Linux de FreeBSD pueden tener un mejor rendimiento que las mismas aplicaciones en Red Hat Linux. Ocasionalmente se realizan pruebas de rendimiento en Wine para compararlo con 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 complejos 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 (ascendentemente) 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 módulos de expansión, ya que estos pueden proporcionar compatibilidad con ciertos buses de computadora que, de otro modo, serían incompatibles con la máquina.

Véase también

Referencias

  1. Charlie Russel, Microsoft MVP para Windows Server y Tablet PC (18/02/2002). "Compatibilidad de aplicaciones en Windows XP" .
  2. mattwojo (18 de junio de 2024). "Cómo funciona la emulación en Arm" . learn.microsoft.com . Consultado el 26 de noviembre de 2024 .
  3. "Tizen OS ejecutará aplicaciones de Android, con un poco de ayuda de software de terceros (Vídeo)" . 15 de mayo de 2012.
  4. "OpenMobile ACL para webOS resucita en Kickstarter, con la esperanza de llevar aplicaciones de Android a HP Touchpad" . 29 de abril de 2013.
  5. "OpenMobile presenta ACL para MeeGo y promete compatibilidad total con aplicaciones Android (Vídeo)" . 22 de septiembre de 2011.
  6. "Myriad 'Alien Dalvik' ejecuta aplicaciones de Android en cualquier teléfono... Empezando con MeeGo (Vídeo)" . 8 de febrero de 2011.
  7. "Myriad Alien Dalvik: primeras impresiones (Vídeo)" . 18 de febrero de 2011.
  8. "Ejecutar aplicaciones de Android en el iPad con Alien Dalvik de Myriad" . YouTube . 20 de octubre de 2011.
  9. "Primeras impresiones de Alien Dalvik 2.0 de Myriad en un iPad (Vídeo)" . 10 de octubre de 2011.
  10. "Aplicaciones de Android para ejecutar en iPad con Alien Dalvik 2.0" .
  11. Joneš, Jan (27 de junio de 2019). "Emulador de IOS para Windows" . hdl : 20.500.11956/108316 .
  12. "Aah" . GitHub .
  13. "Proyecto: 2ine | Patreon" .
  14. "Cygwin" . www.cygwin.com . Consultado el 23 de noviembre de 2019 .
  15. "BRS-EMU: Emulador de BrightScript" . GitHub .
  16. shorthorn-project/One-Core-API-Source , shorthorn-project, 30-12-2025 , consultado el 16-01-2026
  17. i486 (2026-01-16), i486/VxKex , consultado el 16 de enero de 2026{{citation}}: CS1 maint: nombres numéricos: lista de autores ( enlace )
  18. "Emulación de Linux en FreeBSD" .
  19. "Emulación" . freebsd.org . Consultado el 16 de marzo de 2014 .
  20. "Una mirada al interior..." freebsd.org . Consultado el 16 de marzo de 2014 .
  21. "Emulación binaria de NetBSD" . netbsd.org . Consultado el 16 de marzo de 2014 .
  22. "Comparación entre WSL 1 y WSL 2" . 20 de marzo de 2023.
  23. BenchMark-0.9.5 Archivado el 9 de diciembre de 2010 en Wayback Machine - La Wiki Oficial de Wine
  24. Emmanuel Dreyfus (8 de agosto de 2002). "Compatibilidad binaria de IRIX, parte 1" . onlamp.com. Archivado del original el 21 de octubre de 2017. Consultado el 16 de marzo de 2014 .
  • Tecnologías de compatibilidad de aplicaciones para Windows XP (Dave Morehouse y Todd Phillips, Microsoft Corporation, 1 de junio de 2001)
Obtenido de " https://en.wikipedia.org/w/index.php?title=Compatibility_layer&oldid=1360822297 "