Udgivelsen af FEX 2412-projektet, som udvikler en emulator til at køre spil og applikationer kompileret til x86- og x86-64-arkitekturer, er blevet præsenteret. Linux-miljø på systemer med ARM64 (AArch64) processorer. Blandt andet bruges FEX-emulatoren af Asahi-projektet til at organisere opstart i Linux-miljøer, der kører på systemer med Apple Silicon ARM-chips, spil fra Steam-kataloget, kompileret til x86_64-arkitekturen. Projektkoden er skrevet i C++ med assembly-indsatser og distribueres under MIT-licensen.
De biblioteker, der kræves for at køre x86-applikationer i et ARM64-miljø, er forbundet i form af et overlejringslag med billedet af rodfilsystemet (rootfs), der leveres i squashfs-formatet. Et sådant lag gør det muligt at gøre det uden at skabe et separat chroot-miljø. Indlæsning af rootfs-billeder, der allerede er genereret af projektet, udføres af et specielt forberedt hjælpeprogram FEXRootFSFetcher.
For at organisere adgangen til visse funktioner i værtsmiljøet, såsom værktøjer til at arbejde med lyd og 3D-grafik, placeres specielle thunk-biblioteker i rootf'erne, som oversætter opkald til biblioteker og kode på siden af værtssystemet (f.eks. opkald til OpenGL og Vulkan). Lignende biblioteker kan også bruges på værtssiden til at få adgang til kode i gæstemiljøet. De tilgængelige biblioteker til videresendelse inkluderer: libEGL, libGL, libSDL2, libX11, libVDSO, libasound, libdrm, libfex_malloc, libvulkan, libwayland-client og libxshmfence.
Ændringer i den nye version omfatter løsning af problemer med at starte Steam-klienten, overførsel af emulering af x86 PAUSE-instruktionen for at bruge ARM WFE-instruktionen i stedet for YIELD, tilvejebringelse af emulering af systemkald, der er nødvendige for at arbejde med gamepads, forbedring af CPUID og RDTSCP-emulering, omstrukturering af FEXCore (emulering backend CPU), eliminerer fejl i emulering af AVX-udvidelser.
Kilde: opennet.ru
