linux运行编程文件格式,Linux系统内核研究之可执行文件格式

『注』Java的load函数为load_java,em86的load函数为load_em86,script 的load函数为load_script,他们没有提供library的load函数。

2.下面我们来看看关于这几个数据结构的主要操作:

register_binfmt:主要作用使将一中二进制文件加到formats链表中。

extern int register_binfmt(struct linux_binfmt *);

unregister_binfmt:执行与register_binfmt的反操作。

extern int unregister_binfmt(struct linux_binfmt *);

init:对于每个不同的二进制文件格式系统都提供了一组init操作,如下:

extern int init_elf_binfmt(void);

extern int init_aout_binfmt(void);

extern int init_script_binfmt(void);

extern int init_java_binfmt(void);

extern int init_em86_binfmt(void);

extern int init_misc_binfmt(void);

以上函数在中声明;

init函数的作用很简单,只是调用register_binfmt函数将自己的文件格式加入formats链表。

load函数:执行二进制文件调入工作,其实质工作一般都由一个相应do_load函数来完成。如:

do_load_elf_binary,do_load_elf_library,do_load_java……

extern int prepare_binprm(struct linux_binprm *);

extern int search_binary_handler

(struct linux_binprm*,struct pt_regs *);

这两个函数主要就涉及到另一个数据结构linux_binprm,她吗那就下次再说吧,到这里大家应该对Linux下几种二进制文件处理程序有个大体的印象了,具体细节去看看源代码吧。0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值