同一个 ELF 文件中的多个 ISA

Multiple ISA in same ELF file

是否可以有一个包含来自两个 ISA 的可执行指令的 ELF 文件。那就是有一个 ELF 文件,可以 运行 在两种架构上,比如 x86 和 PowerPC。

我想到的一个例子是几年前使用的 Apple Universal Binaries。有什么方法可以在 Linux 发行版中实现类似的功能吗?我遇到过旨在这样做的 FatELF 项目,但它似乎已经死了

这被称为 FAT binary. Thee are some proposals like FatELF,但 AFAIK 他们并不是非常成功。

顺便说一句,大多数 Linux 软件都是免费软件,因此 FAT 二进制文件没有太多动力:如果您可以获得源代码,则可以从源代码编译程序。此外,FAT 二进制文件确实很胖(例如比普通二进制文件大),下载它们会占用更多带宽....

此外,在实践中,与 20 年前相比,今天的处理器架构的多样性要少得多。我们基本上主要使用 x86-64(以及平板电脑上的 ARM)。