exec系列函数的实现
2009-02-16 20:02
405 查看
exec系列函数从linux的linux_binfmt链表中,通过依次调用每个结构的load_binary函数来选择合适的运行格式,一旦找到就执行load_binary函数,否则尝试下一个linux_binfmt的load_binary
,直到尝试完所有的linux_binfmt。
load_binary函数:
1.检查128位的magic number,看文件是不是属于这个格式
2.读取文件的header
3.从文件得到dynamic linker的位置
4.检查dynamic linker是否有效
5.调用flush_old_exec()函数,清除被之前计算所使用的所有资源,像内存,页表
6.使用do_mmap()将可执行文件的text,data,bss段映射到进程中
7.如果可执行文件还有其它段,也映射到进程中
8.加载dynamic linker
9.由dynamic linker将程序运行所需要的其它库用mmap()映射到进程中
10.跳到程序的入口出开始执行程序
2009/02/15 日
,直到尝试完所有的linux_binfmt。
load_binary函数:
1.检查128位的magic number,看文件是不是属于这个格式
2.读取文件的header
3.从文件得到dynamic linker的位置
4.检查dynamic linker是否有效
5.调用flush_old_exec()函数,清除被之前计算所使用的所有资源,像内存,页表
6.使用do_mmap()将可执行文件的text,data,bss段映射到进程中
7.如果可执行文件还有其它段,也映射到进程中
8.加载dynamic linker
9.由dynamic linker将程序运行所需要的其它库用mmap()映射到进程中
10.跳到程序的入口出开始执行程序
2009/02/15 日
相关文章推荐
- 启动新进程(fork和exec系列函数实现)
- 启动新进程(fork和exec系列函数实现)
- exec系列函数
- exec... 系列函数
- [C++再学习系列] 派生类函数的重实现规则(override-覆盖)
- 《UNIX环境高级编程》笔记--exec系列函数
- oracle分析函数系列之rank,dense_rank,row_number:实现排名策略
- exec系列函数
- 关于exec系列函数的文件路径问题及延伸
- linux的子进程调用exec( )系列函数
- SSE图像算法优化系列十七:多个图像处理中常用函数的SSE实现。
- 看看str系列函数的实现 一
- C++ cin系列与get系列 函数 实现 用例 浅析
- oracle分析函数系列之rank,dense_rank,row_number:实现排名策略
- exec系列函数(execl,execlp,execle,execv,execvp)使用
- linux系统编程之进程(三):exec系列函数和system函数
- Socket层实现系列 — I/O事件及其处理函数
- exec系列函数记忆
- oracle分析函数系列之rank,dense_rank,row_number:实现排名策略 .
- C语言中字符串系列函数的实现以及注意事项