了解 Linux 内核说
可执行格式由 类型的对象描述
linux_binfmt,它本质上提供了三种方法:load_binary、load_shlib和core_dump。
和
Linux 允许用户注册他们自己的自定义可执行格式。
/proc/sys/fs/binfmt_misc要注册一种新格式,用户将具有以下格式的字符串写入 binfmt_misc 特殊文件系统(通常安装在 )的寄存器文件中 ::name:type:offset:string:mask:interpreter:flags当内核确定可执行文件具有自定义格式时,它会启动适当的解释程序。解释程序在用户模式下运行,接收可执行文件的路径名作为其参数,并进行计算。例如,包含 Java 程序的可执行文件由 Java 虚拟机处理,例如
/usr/lib/java/bin/java.
虽然它没有提到这一点,但注册的自定义可执行格式是否也由 type 的对象描述linux_binfmt?
如果是,注册自定义可执行格式不需要我们显式提供load_binary、load_shlib和core_dump方法。这三个方法是从注册中隐式创建的吗?
没有 load_binary方法,内核调用什么方法通过相应的解释器来执行已注册可执行格式的可执行文件?