Lanzamiento del emulador FEX 2508, que permite ejecutar programas x86 en sistemas ARM64

Se ha publicado la versión del proyecto FEX 2508, que desarrolla un emulador para ejecutar juegos y aplicaciones diseñados para arquitecturas x86 y x86-64 en un entorno Linux en sistemas con procesadores ARM64 (AArch64). El emulador FEX es utilizado por el proyecto Asahi para ejecutar en sistemas con chips ARM de Apple Silicon juegos de la biblioteca de Steam, compilados para la arquitectura x86_64. El código del proyecto está escrito en C++ con inserciones en ensamblador y se distribuye bajo la licencia MIT.

Las bibliotecas necesarias para ejecutar aplicaciones x86 en un entorno ARM64 se conectan en forma de una capa de overlay con una imagen de sistema de archivos raíz (rootfs), proporcionada en formato SquashFS. Una capa así permite evitar la creación de un entorno chroot separado. La carga de las imágenes de rootfs ya formadas por el proyecto se realiza con la utilidad FEXRootFSFetcher.

Para acceder a las capacidades del entorno host, como herramientas para trabajar con sonido y gráficos 3D, se colocan en rootfs bibliotecas thunk, que traducen las llamadas a las bibliotecas y al código en el lado del sistema host (por ejemplo, se pueden redirigir llamadas a OpenGL y Vulkan). Estas bibliotecas también pueden ser utilizadas en el lado del host para acceder al código en el entorno invitado. Entre las bibliotecas disponibles para el desvío se encuentran: libEGL, libGL, libSDL2, libX11, libVDSO, libasound, libdrm, libfex_malloc, libvulkan, libwayland-client y libxshmfence.

En la nueva versión:

  • Se ha realizado una optimización considerable del compilador JIT, lo que ha permitido aumentar el FPS en el juego Cyberpunk 2077 en un 38.9%, Doom 2016 en un 30.9%, Stray en un 25.2%, Grim Fandango Remastered en un 24.7%, Teardown en un 12.6% y en Gold of War 2018 en un 4.6%. Las optimizaciones más significativas han sido en la pila de llamadas y retornos (call-return), así como la utilización en las bibliotecas wow64/arm64ec del modelo de memoria TSO (Total Store Ordering), soportado por los procesadores Apple Silicon.
    Lanzamiento del emulador FEX 2508, que permite ejecutar programas x86 en sistemas ARM64
  • Se ha implementado soporte para el bit NX (No Execute) para prohibir la ejecución de instrucciones en áreas de memoria que no estén marcadas explícitamente como permitidas para la ejecución.
  • Se ha mejorado el soporte para el código utilizado para prevenir la depuración y alterar el flujo de ejecución en juegos, como Peggle Deluxe y Crysis 2: Maximum Edition.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster