gpt4 book ai didi

linux-kernel - Linux 内核如何知道如何执行二进制格式

转载 作者:行者123 更新时间:2023-12-02 04:44:20 25 4
gpt4 key购买 nike

我正在阅读二进制格式,例如 ELF 格式,所以假设我有两个二进制文件,一个编译为 ELF 文件,另一个编译为 COFF(或另一种二进制格式),内核如何处理这个?我的意思是,当你执行程序时,linux 如何知道如何处理每种不同的格式?内核是否有一些根据二进制文件头选择的接口(interface),正确的代码来处理各种二进制文件??

最佳答案

正如您所说,内核根据 header 检测二进制文件的类型。

使用register_binfmt()注册不同的二进制格式。查看不同实现的 fs/binfmt_* 文件。

这是由 exec_binprm() 完成的——基本上是 execve 系统调用的核心——(在 fs/exec.c 中)。它调用 search_binary_handler(),搜索已注册的格式处理程序以找到愿意处理文件的处理程序。

关于linux-kernel - Linux 内核如何知道如何执行二进制格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20125984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com