【发布时间】:2013-04-04 17:18:01
【问题描述】:
在 *nix 系统中,进程是通过使用 fork() 系统调用创建的。考虑例如,init 进程创建另一个进程。首先它分叉自己并创建一个具有类似 init 上下文的进程。只有在调用 exec() 时,这个子进程才会变成一个新进程。那么为什么需要中间步骤(创建一个与父级具有相同上下文的子级)?这不是浪费时间和资源吗,因为我们正在创建一个上下文(消耗时间和内存)然后重写它?
为什么这不是分配一个空的内存区域然后调用exec()?这会节省时间和资源,对吧?
【问题讨论】: