Понимание ядра Linux говорит
Исполняемый формат описывается объектом типа linux_binfmt
, который по существу предоставляет три метода: load_binary
, load_shlib
и core_dump
.
и
Linux позволяет пользователям регистрировать свои собственные пользовательские исполняемые форматы.Чтобы зарегистрировать новый формат, пользователь записывает в файл реестра специальной файловой системы binfmt_misc (обычно смонтированной на /proc/sys/fs/binfmt_misc
) строку следующего формата:
:name:type:offset:string:mask:interpreter:flags
Когда ядро определяет, что исполняемый файлимеет собственный формат, он запускает соответствующую программу интерпретатора.Программа интерпретатора работает в режиме пользователя, получает в качестве параметра путь к исполняемому файлу и выполняет вычисления.Например, исполняемый файл, содержащий программу на Java, обрабатывается виртуальной машиной Java, такой как /usr/lib/java/bin/java
.
Хотя это и не упоминается, это зарегистрированный настраиваемый исполняемый формат, также описываемыйобъект типа linux_binfmt
?
Если да, регистрация пользовательского исполняемого формата не требует явного предоставления методов load_binary
, load_shlib
и core_dump
.Три метода созданы неявно из регистрации?
Без метода load_binary
, какой метод вызывается ядром для выполнения исполняемых файлов зарегистрированного исполняемого формата через соответствующий интерпретатор?