【发布时间】:2017-05-19 04:58:45
【问题描述】:
每个操作系统都使用相同的模型来创建新进程。父母分叉自己,然后执行孩子。但是为什么这种模式如此受欢迎呢?
在典型的 fork+exec 模型中,操作系统必须创建整个进程空间的副本(允许通过写时复制等进行一些优化),然后在 exec 完成时创建新程序的代码和数据/stack 需要与其他元数据一起设置。
现在,如果我可以直接调用操作系统并说有一个系统调用 exec_new() 那么它可以执行与上面相同的操作,而无需两个系统调用。所有者仍将是相同的 UID。为什么不这样做? fork+exec 模型给我们带来了什么?
【问题讨论】:
标签: process operating-system fork