可执行文件格式对应的load_binary 方法执行下列操作(我们假定这个可执行文件所在的文件系统允许文件进行内存映射并并需要一个或多个共享库):
![a5b3eecf492a98f20b593002b4673575.png](https://i-blog.csdnimg.cn/blog_migrate/48b0e62fde8ed4dad84b0297da19e549.jpeg)
1。 检查存放在文件前128字节中的一些魔数以确认可执行格式。如果魔数不匹配,则返回错误码-ENOEXEC。
2。读可执行文件的首部。这个首部描述程序的段和所需的共享库。
3。从可执行文一件获得动态链接程序的路径名,并用它来确定共享库的位置并把它们映射到内存。
4。获得动态链接程序的目录项对象(也就获得了索引节点对象和文件对象)。
5。检查动态链接程序的执行许可权。
6。把动态链接程序的前128字节拷贝到缓冲区。
7。对动态链接程序类执行一些一致性检查。
![2687ab68b4c440d7499fa05cfd7fe35a.png](https://i-blog.csdnimg.cn/blog_migrate/12186a0393e809b3b98039d6fba5d915.jpeg)