FOSSPicks
x86 on ARM
FEX
With ARM64 becoming an ever more viable platform for general Linux desktop and laptop use, we find ourselves at an exciting juncture. For the first time in a generation, there's a split between a dominant and well-established architecture, x86 and x86-64, and a nascent newcomer, ARM-based AArch64. Most distributions now have a quickly maturing ARM build of their latest releases, and open source means almost everything can be rebuilt without too much difficulty, but there's still a transition period for some software, especially on distributions such as Arch where not everything in the AUR offers an ARM binary and proprietary software with only x86-based builds. Apple is tackling this problem on its M1 and M2 macOS machines with its incredibly performant Rosetta, which now works natively within Ubuntu virtualization on macOS, but FEX is trying to do the same thing for native Linux.
FEX is an x86 and x86-64 compatibility and translation layer for ARM64, enabling you to run x86 binaries from an ARM host. It only currently works with ARMv8.0 and ARMv8.1+, rather than the chips found on older Raspberry Pi devices, but it does run quickly and efficiently enough to be unnoticeable on modern hardware. It's a brilliant way to run games and other proprietary software that may not yet offer native ARM builds. On Ubuntu, there's a handy script that will install all FEX's necessary dependencies and add the project's PPA to your package archive. An x86 RootFS image of the same distribution is also needed to provide the runtime environment for your x86 executables, and the script will download this and let you choose to run it uncompressed or from the compressed image to save space. Either way, it works without any further setup. Type FEXBash
and you immediately get an x86 version of Bash running within your own filesystem. Type uname -a
and you'll see it's x86, and you can access many other x86 executables directly. Even graphics acceleration remains intact as it's passed through to your host system libraries, and it all works brilliantly.
Project Website
https://github.com/FEX-Emu/FEX
Audio effects
Buy this article as PDF
(incl. VAT)