Список исполняемых форматов в Linux

Где я могу найти список утвержденных / поддерживаемых форматов исполняемых файлов в моей системе Linux? Я ожидаю найти список, содержащий ELF, Shebang, a.out и т. Д. Я уже знаю, что могу найти в /proc/sys/fs/binfmt_misc список поддерживаемых форматов, добавленных пользователем, но я хочу увидеть встроенные форматы в системе. Где я могу получить это?

1 ответ

Решение

Файл конфигурации ядра имеет раздел под названием Исполняемые форматы файлов / Эмуляции. Файл называется /boot/config-`uname -r` в некоторых дистрибутивах Linux, например, в Fedora.

Некоторые из доступных опций для 3.14.12 x86 (64 бит):

  • CONFIG_BINFMT_ELF
  • CONFIG_BINFMT_SCRIPT

    Скажите здесь Y, если вы хотите выполнять интерпретированные сценарии, начинающиеся с #! сопровождаемый путем к переводчику.

  • CONFIG_IA32_EMULATION

    Включите код для запуска устаревших 32-разрядных программ под 64-разрядным ядром.

    • CONFIG_IA32_AOUT:

      Поддержка старых двоичных файлов a.out в 32-битной эмуляции.

    • CONFIG_X86_X32:

      Включите код для запуска двоичных файлов для 32-разрядного интерфейса пользователя x32 для 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
Другие вопросы по тегам