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 :
- La capa de compatibilidad de Linux de FreeBSD , que permite que los binarios creados específicamente para Linux se ejecuten en FreeBSD [ 18 ] de la misma manera que la capa API nativa de FreeBSD. [ 19 ] FreeBSD también tiene algunas emulaciones de sistemas tipo Unix, incluyendo NDIS, NetBSD, PECoff, SVR4 y diferentes versiones de CPU de FreeBSD. [ 20 ]
- NetBSD tiene varias emulaciones de sistemas tipo Unix. [ 21 ]
- Columbia Cycada , una capa de compatibilidad aún no publicada que permite ejecutar aplicaciones de Apple iOS en sistemas Android.
- El Subsistema de Windows para Linux proporciona una interfaz de kernel compatible con Linux desarrollada por Microsoft. [ 22 ]
- El proyecto PEACE (también conocido como COMPAT_PECOFF) cuenta con una capa de compatibilidad con Win32 para NetBSD. El proyecto se encuentra actualmente inactivo.
- En RSTS/E para la serie de minicomputadoras PDP-11 , los programas escritos para ejecutarse en el sistema operativo RT-11 podían ejecutarse (sin necesidad de recompilar) en RSTS mediante el sistema de tiempo de ejecución RT-11 con su indicador EMT activado. Esto significa que una instrucción EMT de RT-11 que coincide con una EMT de RSTS se redirige al sistema de tiempo de ejecución RT-11, que la traduce a la EMT equivalente de RSTS. Los programas escritos para aprovechar RSTS directamente (o las llamadas a RSTS dentro del propio sistema de tiempo de ejecución) lo indican mediante una segunda instrucción EMT (normalmente EMT 255) inmediatamente antes del código EMT de RSTS propiamente dicho.
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
- ↑ Charlie Russel, Microsoft MVP para Windows Server y Tablet PC (18/02/2002). "Compatibilidad de aplicaciones en Windows XP" .
- ↑ mattwojo (18 de junio de 2024). "Cómo funciona la emulación en Arm" . learn.microsoft.com . Consultado el 26 de noviembre de 2024 .
- ↑ "Tizen OS ejecutará aplicaciones de Android, con un poco de ayuda de software de terceros (Vídeo)" . 15 de mayo de 2012.
- ↑ "OpenMobile ACL para webOS resucita en Kickstarter, con la esperanza de llevar aplicaciones de Android a HP Touchpad" . 29 de abril de 2013.
- ↑ "OpenMobile presenta ACL para MeeGo y promete compatibilidad total con aplicaciones Android (Vídeo)" . 22 de septiembre de 2011.
- ↑ "Myriad 'Alien Dalvik' ejecuta aplicaciones de Android en cualquier teléfono... Empezando con MeeGo (Vídeo)" . 8 de febrero de 2011.
- ↑ "Myriad Alien Dalvik: primeras impresiones (Vídeo)" . 18 de febrero de 2011.
- ↑ "Ejecutar aplicaciones de Android en el iPad con Alien Dalvik de Myriad" . YouTube . 20 de octubre de 2011.
- ↑ "Primeras impresiones de Alien Dalvik 2.0 de Myriad en un iPad (Vídeo)" . 10 de octubre de 2011.
- ↑ "Aplicaciones de Android para ejecutar en iPad con Alien Dalvik 2.0" .
- ↑ Joneš, Jan (27 de junio de 2019). "Emulador de IOS para Windows" . hdl : 20.500.11956/108316 .
- ↑ "Aah" . GitHub .
- ↑ "Proyecto: 2ine | Patreon" .
- ↑ "Cygwin" . www.cygwin.com . Consultado el 23 de noviembre de 2019 .
- ↑ "BRS-EMU: Emulador de BrightScript" . GitHub .
- ↑ shorthorn-project/One-Core-API-Source , shorthorn-project, 30-12-2025 , consultado el 16-01-2026
- ↑ i486 (2026-01-16), i486/VxKex , consultado el 16 de enero de 2026
{{citation}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ "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 entre 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 de Wine
- ↑ 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 .
Enlaces externos
- Tecnologías de compatibilidad de aplicaciones para Windows XP (Dave Morehouse y Todd Phillips, Microsoft Corporation, 1 de junio de 2001)
- Capas de compatibilidad