免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1488 | 回复: 3
打印 上一主题 下一主题

虚心求教,硬盘上的可执行文件到内存中正在执行的进程,中间经过哪些步骤? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-18 19:29 |只看该作者 |倒序浏览
对linux来说,硬盘上的可执行文件大多为ELF格式的文件,当这个文件通过在shell中或者在界面上面被点击后,一直到这个文件对应的进程运行起来的过程中,经过了哪些步骤呢?
我大概了解会fork一个新的进程出来,还有loader会将文件的某些部分通过mmap()放入内存,并且准备好一些相关的初始化工作,装载一些动态库,然后通过C/C++运行时启动代码来启动main。(可能有错,希望大家指出来。)
我对这个过程没有一个比较详细的了解,找到的资料大多都是讲述ELF格式的,还没有找到和这个过程很相关的资料。这里高手众多,能否提供一些资料能够比较详细描叙的,主要是能够按照顺序对这个装载、运行的过程进行描述的,大家有自己的想法也可以说一些,多谢了!

论坛徽章:
0
2 [报告]
发表于 2006-04-18 20:18 |只看该作者
我脑子里是这样的,很残缺不全,而且有很多错误。

fork() 一个与shell一样的东西完后再exec(),陷入内核,建立进程表项,由文件系统读出文件的磁盘块放在散列队列(驱动程序过程不清楚),读elf信息,设置好相应的段,设置进程就绪,返回exec()等待被调度。

关注正解中。
SirFang 该用户已被删除
3 [报告]
发表于 2006-04-18 23:13 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2006-04-19 09:25 |只看该作者
去网上找, opera前辈的《分析ELF文件的加载过程》
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP