【问题标题】:List of executable formats on Linux [closed]Linux 上的可执行格式列表 [关闭]
【发布时间】:2014-04-26 13:06:04
【问题描述】:

在哪里可以找到我的 Linux 系统上批准/支持的可执行格式列表?我期待找到一个包含 ELF、Shebang、a.out 等的列表。 我已经知道我可以在/proc/sys/fs/binfmt_misc 中找到用户添加的支持格式列表,但我想查看系统中的内置格式。我在哪里可以买到?

【问题讨论】:

    标签: linux format executable elf


    【解决方案1】:

    内核配置文件有一个名为可执行文件格式/仿真的部分。该文件在某些​​ Linux 发行版(例如 Fedora)上命名为 /boot/config-`uname -r`。

    3.14.12 x86(64 位)的一些可用选项是:

    • CONFIG_BINFMT_ELF
    • CONFIG_BINFMT_SCRIPT

      如果您想执行以 #!后跟解释器的路径。

    • CONFIG_IA32_EMULATION

      包含在 64 位内核下运行旧版 32 位程序的代码。

      • CONFIG_IA32_AOUT:

        在 32 位仿真中支持旧的 a.out 二进制文件。

      • CONFIG_X86_X32:

        包括为 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-23
      • 2012-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多