Linux下ELF可执行文件装载与运行

本文详细介绍了Linux环境下ELF(Executable and Linkable Format)可执行文件的装载过程,并探讨了64位系统如何运行32位ELF程序的技术细节。
摘要由CSDN通过智能技术生成

一、Linux下装载ELF可执行文件的过程

1、创建子进程
    内核创建task_struct数据结构,继承父进程的虚拟地址空间(Virtual Memory Space,VMS)。
2、调用execve()系统调用执行指定的ELF文件
(1)调用内核态函数sys_execve(),动态申请一个linux_binprm数据结构,并用ELF可执行文件的数据填充这个结构;
(2)调用prepare_binprm()函数用位于inode中的数据填充linux_binprm数据结构;
(3)调用search_binary_handler()函数遍历formats链表依次应用其load_binary的方法。对于ELF文件会找到elf_format节点,调用load_elf_binary()函数进行如下工作:
1)检查存放在文件前128字节中的魔数以确认可执行格式及其有效性;
2) 读取可执行文件的首部;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值