Lançamento do emulador FEX 2508, permitindo a execução de programas x86 em sistemas ARM64

Foi lançado o projeto FEX 2508, que desenvolve um emulador para executar jogos e aplicativos compilados para as arquiteturas x86 e x86-64 em ambientes Linux em sistemas com processadores ARM64 (AArch64). O emulador FEX é utilizado pelo projeto Asahi para executar jogos do catálogo Steam, compilados para a arquitetura x86_64, em sistemas com chips ARM da Apple Silicon. O código do projeto é escrito em C++ com inserções de assembly e é distribuído sob a licença MIT.

As bibliotecas necessárias para executar aplicativos x86 em ambientes ARM64 são conectadas na forma de uma camada overlay com uma imagem do sistema de arquivos raiz (rootfs), fornecida no formato SquashFS. Essa camada permite contornar a necessidade de criar um ambiente chroot separado. A carga das imagens rootfs já formadas pelo projeto é realizada pela utilidade FEXRootFSFetcher.

Para acessar os recursos do ambiente host, como ferramentas para trabalhar com áudio e gráficos 3D, são inseridas na rootfs bibliotecas thunk, que transmitem chamadas para bibliotecas e código no lado do sistema host (por exemplo, chamadas para OpenGL e Vulkan podem ser redirecionadas). Essas bibliotecas também podem ser utilizadas no lado do host para acessar o código no ambiente convidado. Entre as bibliotecas disponíveis para redirecionamento estão: libEGL, libGL, libSDL2, libX11, libVDSO, libasound, libdrm, libfex_malloc, libvulkan, libwayland-client e libxshmfence.

Na nova versão:

  • Uma significativa otimização do compilador JIT foi realizada, permitindo um aumento de FPS no jogo Cyberpunk 2077 de 38,9%, Doom 2016 de 30,9%, Stray de 25,2%, Grim Fandango Remastered de 24,7%, Teardown de 12,6% e em God of War 2018 de 4,6%. As otimizações do stack de chamadas e retornos (call-return) tiveram o maior impacto, assim como a utilização nas bibliotecas wow64/arm64ec do modelo de memória TSO (Total Store Ordering), suportado pela CPU Apple Silicon.
    Lançamento do emulador FEX 2508, permitindo a execução de programas x86 em sistemas ARM64
  • Implementado suporte para o bit NX (No Execute) para proibir a execução de instruções em áreas de memória que não estão especificamente marcadas como permissíveis para execução.
  • Melhorado o suporte ao código utilizado para evitar depuração e alteração do fluxo de execução em jogos como Peggle Deluxe e Crysis 2: Maximum Edition.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster