Fedora 42 On 64-bit ARM Might Make It Seamless To Run x86/x86_64 Programs
([Fedora] 2 Hours Ago
FEX On Fedora AArch64)
- Reference: 0001491242
- News link: https://www.phoronix.com/news/Fedora-42-FEX-AArch64-Proposal
- Source link:
As one of the [1]early feature proposals for Fedora 42 , there is a proposal being considered to make for a nice out-of-the-box experience running x86/x86_64 game/application binaries atop Fedora 42 AArch64 hosts.
The change ultimately comes down to shipping the FEX emulator on Fedora AArch64 so that it's included and configured to jive nicely with Fedora ARM64. Those working on the change proposal -- including Alyssa Rosenzweig of Asahi Linux and others -- want to provide a "delightful out-of-box experience" for those wanting to run x86 and x86_64 binaries on Fedora AArch64 systems, similar to macOS on Apple Silicon offering a nice x86/x86_64 support experience.
[2]FEX is a nice open-source emulator for running x86/x86_64 Linux binaries on AArch64 hardware and can even run games with decent speed and handle the likes of Steam on Linux. It's made much progress in recent years and is doing rather well as frequently covered on Phoronix.
The Fedora 42 change proposal's description reads:
"When running Fedora Linux on an AArch64 host, one can normally only run AArch64 binaries. This can be a problem if the user needs to run preexisting software that was built for x86 or x86-64, which is still the predominant architecture. If the software is opensource it can sometimes be recompiled (or, even better, packaged in Fedora), but this isn't always an option and could require significant work on the user's part. For proprietary software, there is no viable option short of persuading the author to release a native AArch64 build.
FEX allows the user to sidestep this issue entirely by making it possible to run x86 and x86-64 binares on AArch64 Linux hosts, as if they were native. FEX achieves this via emulation, and it integrates with the binfmts infrastructure to provide a seamless experience. To ensure wide compatibility, FEX is also able to leverage a distribution-shipped root filesystem tree (RootFS) to provide core system libraries that the emulated binaries might need.
FEX only supports AArch64 host systems running a 4k page-size kernel. This is the default in Fedora Linux, but it presents a problem for Fedora Asahi Remix, as Apple Silicon Macs use a 16k page-size. To address this, we will leverage krun to run FEX inside a microVM with a 4k page-size kernel, thus providing a compatible environment with minimal overhead."
The work involves packaging FEX, creating a FEX root file-system that can be packaged for Fedora as an RPM, packaging krun, and making other changes. Those wanting this support on Fedora 42 AArch64 would then just need to run "dnf install @fex-x86-emulation" for a nice out-of-the-box experience.
This change proposal still needs to be voted on by the Fedora Engineering and Steering Committee (FESCo) but would be a big win for enhancing the usability of Fedora AArch64 on the desktop by those wanting to try running x86 games and other x86 binary applications on the likes of Apple Silicon devices, Arm SBCs like the Raspberry Pi, Ampere servers, and other Fedora ARM environments. See the [3]change proposal for more details on these tentative plans for Fedora 42 in the spring.
[1] https://www.phoronix.com/news/Fedora-42-Anaconda-Web-UI-Again
[2] https://www.phoronix.com/search/FEX-Emu
[3] https://fedoraproject.org/wiki/Changes/FEX
The change ultimately comes down to shipping the FEX emulator on Fedora AArch64 so that it's included and configured to jive nicely with Fedora ARM64. Those working on the change proposal -- including Alyssa Rosenzweig of Asahi Linux and others -- want to provide a "delightful out-of-box experience" for those wanting to run x86 and x86_64 binaries on Fedora AArch64 systems, similar to macOS on Apple Silicon offering a nice x86/x86_64 support experience.
[2]FEX is a nice open-source emulator for running x86/x86_64 Linux binaries on AArch64 hardware and can even run games with decent speed and handle the likes of Steam on Linux. It's made much progress in recent years and is doing rather well as frequently covered on Phoronix.
The Fedora 42 change proposal's description reads:
"When running Fedora Linux on an AArch64 host, one can normally only run AArch64 binaries. This can be a problem if the user needs to run preexisting software that was built for x86 or x86-64, which is still the predominant architecture. If the software is opensource it can sometimes be recompiled (or, even better, packaged in Fedora), but this isn't always an option and could require significant work on the user's part. For proprietary software, there is no viable option short of persuading the author to release a native AArch64 build.
FEX allows the user to sidestep this issue entirely by making it possible to run x86 and x86-64 binares on AArch64 Linux hosts, as if they were native. FEX achieves this via emulation, and it integrates with the binfmts infrastructure to provide a seamless experience. To ensure wide compatibility, FEX is also able to leverage a distribution-shipped root filesystem tree (RootFS) to provide core system libraries that the emulated binaries might need.
FEX only supports AArch64 host systems running a 4k page-size kernel. This is the default in Fedora Linux, but it presents a problem for Fedora Asahi Remix, as Apple Silicon Macs use a 16k page-size. To address this, we will leverage krun to run FEX inside a microVM with a 4k page-size kernel, thus providing a compatible environment with minimal overhead."
The work involves packaging FEX, creating a FEX root file-system that can be packaged for Fedora as an RPM, packaging krun, and making other changes. Those wanting this support on Fedora 42 AArch64 would then just need to run "dnf install @fex-x86-emulation" for a nice out-of-the-box experience.
This change proposal still needs to be voted on by the Fedora Engineering and Steering Committee (FESCo) but would be a big win for enhancing the usability of Fedora AArch64 on the desktop by those wanting to try running x86 games and other x86 binary applications on the likes of Apple Silicon devices, Arm SBCs like the Raspberry Pi, Ampere servers, and other Fedora ARM environments. See the [3]change proposal for more details on these tentative plans for Fedora 42 in the spring.
[1] https://www.phoronix.com/news/Fedora-42-Anaconda-Web-UI-Again
[2] https://www.phoronix.com/search/FEX-Emu
[3] https://fedoraproject.org/wiki/Changes/FEX
Britoid