Список исполняемых форматов в 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
Скажите здесь Y, если вы хотите выполнять интерпретированные сценарии, начинающиеся с #! сопровождаемый путем к переводчику.
Включите код для запуска устаревших 32-разрядных программ под 64-разрядным ядром.
Поддержка старых двоичных файлов a.out в 32-битной эмуляции.
Включите код для запуска двоичных файлов для 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