exec函数的实现猜想

声明,本内容是阅读UNIX环境高级编程,第7章 process environment时的理解和猜测,并不是阅读linux源码后的总结。但个人认为,一下内容虽然不是exec源码的设计思路,但可以作为一种理论上的exec函数的设计思路。如有不同观点,请留言交流。

父进程使用exec创建新进程过程猜想

    exec()函数的功能是根据命令行参数,环境列表,程序文件,创建进程。其具体实现,猜想可由以下几步组成:

1.call start-up routine,调用汇编编写的启动程度段,kernel将环境列表和命令行参数传递给start-up,然后,由start-up    将其放在进程内存布局的相应位置。

2.read program file from disk,读取磁盘上的程序文件,将代码段,数据段,加载到新进程地址空间的相应位置。根据      程序文件对bss的描述,在进程地址空间中创建bss段。最后,创建堆和栈。由exec()中的其他代码实现此功能,不    是由start-up来实现的。

3.完成上述两个步骤后,新进程的内存布局已经布置完成,跳转到main函数并执行,进程开始运行。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值