【发布时间】:2014-04-26 13:06:04
【问题描述】:
在哪里可以找到我的 Linux 系统上批准/支持的可执行格式列表?我期待找到一个包含 ELF、Shebang、a.out 等的列表。
我已经知道我可以在/proc/sys/fs/binfmt_misc 中找到用户添加的支持格式列表,但我想查看系统中的内置格式。我在哪里可以买到?
【问题讨论】:
标签: linux format executable elf
在哪里可以找到我的 Linux 系统上批准/支持的可执行格式列表?我期待找到一个包含 ELF、Shebang、a.out 等的列表。
我已经知道我可以在/proc/sys/fs/binfmt_misc 中找到用户添加的支持格式列表,但我想查看系统中的内置格式。我在哪里可以买到?
【问题讨论】:
标签: linux format executable elf
内核配置文件有一个名为可执行文件格式/仿真的部分。该文件在某些 Linux 发行版(例如 Fedora)上命名为 /boot/config-`uname -r`。
3.14.12 x86(64 位)的一些可用选项是:
如果您想执行以 #!后跟解释器的路径。
包含在 64 位内核下运行旧版 32 位程序的代码。
在 32 位仿真中支持旧的 a.out 二进制文件。
包括为 x32 本机 32 位 ABI 运行二进制文件的代码 64 位处理器。 x32 进程可以访问完整的 64 位 寄存器文件和宽数据路径,同时将指针留在 32 位以减少内存占用。
kernel-3.14.1-200.fc20.x86_64 带有这个配置:
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
CONFIG_BINFMT_SCRIPT=y
# CONFIG_HAVE_AOUT is not set
CONFIG_BINFMT_MISC=m
CONFIG_COREDUMP=y
CONFIG_IA32_EMULATION=y
# CONFIG_IA32_AOUT is not set
# CONFIG_X86_X32 is not set
【讨论】: