CONFIG_IA32_AOUT 实际上做什么?

dai*_*isy 4 linux kernel executable

我正在运行 64 位内核,已经CONFIG_IA32_EMULATION设置好了,所以我还需要CONFIG_IA32_AOUT启用吗?

从 中的帮助来看menuconfig,我不太明白。

roz*_*acz 5

简短的回答:

如果您的系统是普通的台式机/笔记本电脑,并且您没有运行任何真正过时的软件,那么您应该可以安全地禁用CONFIG_IA32_AOUT. 保留CONFIG_IA32_EMULATION,因为您的某些二进制文件可能仍然是 32 位的。


解释:

这里涉及两个问题:可执行文件格式在 64 位系统上执行 32 位代码

  • 您可以在 wikipedia 上阅读文件格式查看它们的比较,但对您来说最重要的信息是ELF是当前标准,而a.out是其前身。您不太可能以a.out二进制文件的形式找到任何最近的程序(不要将文件格式与编译器提供给二进制文件的默认输出名称混淆 - 后者通常仍然a.out出于历史原因,尽管ELF格式的二进制文件)。

  • 如果您使用的是 64 位系统,那么您的某些程序可能仍然是 32 位的。这是很多比跨越未来更可能的a.out二进制文件。

明确地说:ELFa.out格式的二进制文件都可以是 32 位和 64 位。这些区别是分开的(从比较中可以看出)。