cannot execute binary file: 可执行文件格式错误_深入理解linux内核 —— 可执行文件执行过程(1)...

可执行文件格式对应的load_binary 方法执行下列操作(我们假定这个可执行文件所在的文件系统允许文件进行内存映射并并需要一个或多个共享库):

a5b3eecf492a98f20b593002b4673575.png

1。 检查存放在文件前128字节中的一些魔数以确认可执行格式。如果魔数不匹配,则返回错误码-ENOEXEC。

2。读可执行文件的首部。这个首部描述程序的和所需的共享库

3。从可执行文一件获得动态链接程序的路径名,并用它来确定共享库的位置并把它们映射到内存。

4。获得动态链接程序的目录项对象(也就获得了索引节点对象和文件对象)。

5。检查动态链接程序的执行许可权

6。把动态链接程序的前128字节拷贝到缓冲区

7。对动态链接程序类执行一些一致性检查。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值