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

  • Post author:
  • Post category:linux


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

a5b3eecf492a98f20b593002b4673575.png

1。 检查存放在文件前128字节中的一些

魔数

以确认可执行格式。如果魔数不匹配,则返回错误码-ENOEXEC。

2。读可执行文件的首部。这个首部描述程序的



和所需的

共享库

3。从可执行文一件获得

动态链接程序

的路径名,并用它来确定

共享库

的位置并把它们

映射

到内存。

4。获得动态链接程序的

目录项对象

(也就获得了索引节点对象和文件对象)。

5。检查动态链接程序的

执行许可权

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

缓冲区

7。对动态链接程序类执行一些

一致性

检查。

2687ab68b4c440d7499fa05cfd7fe35a.png



版权声明:本文为weixin_35696092原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。