找回密码
 骑士注册

QQ登录

微博登录

搜索
❏ 站外平台:

Linux 中国◆开源社区 首页 查看评论
[1]
来自浙江嘉兴的 Chrome 58.0|GNU/Linux 用户 发表于 2017-04-28 07:13 的评论:
在 Linux 中创建进程一节有问题哦。
1.创建进程只有fork或vfork.并执行exec。还有写复制应该翻译成写时复制。fork那一段写的都好别扭。
2.system命令只不过把fork和exec的任务交给了shell来完成而已,硬要算的话暂且也算一种把。
3.调用exec系列函数不会创建进程!!只不过是替换了正文段数据段等而已,并不会拥有一个新的PID和PCB;文中说明的有偏差。是同一个进程而是不是PID相同的两个进程。
4.原文中写的蛮好的,为啥要自己提供?自己提供的话至少也要参考下APUE吧
[2]
linux [Chrome 57.0|Mac 10.11] 发表于 2017-04-28 22:05 的评论:
1、应该翻译为“写时复制”。
2、同意。
3、确实,exec 并非创建了新的进程,只是替代。但是由于原进程被替代,所以习惯上认为是创建了新的、PID 一样的进程——这确实是不够严谨。
4、原文关于创建主要是这样的一段
“A new process is normally created when an existing process makes an exact copy of itself in memory. The child process will have the same environment as its parent, but only the process ID number is different.”
这里 “但是只有进程号是不同的”,在 exec 的情况下是不对的,因此才没有采用原文。

谢谢您的认真阅读和意见!
[3]
来自浙江嘉兴的 Chrome 58.0|GNU/Linux 用户 发表于 2017-05-01 17:29 的评论:
原文是正确的。要区分出fork和exec之间的区别。

fork之后不一定要exec,exec之前也不一定要fork。

fork之后并不是一定要exec,而父进程和子进程可以执行同一个可执行文件内的不同代码,最简单形式下的daemonize就是这么做的

所以最严谨的说法是,创建进程的唯一方法只有fork。
fork和exec之间并无本质联系。而关键是fork
linux [Chrome 57.0|Mac 10.11] 2017-05-01 23:35 1 回复
好,遵照你的意见,采用原文的翻译。
[1]
来自浙江嘉兴的 Chrome 58.0|GNU/Linux 用户 发表于 2017-04-28 07:13 的评论:
在 Linux 中创建进程一节有问题哦。
1.创建进程只有fork或vfork.并执行exec。还有写复制应该翻译成写时复制。fork那一段写的都好别扭。
2.system命令只不过把fork和exec的任务交给了shell来完成而已,硬要算的话暂且也算一种把。
3.调用exec系列函数不会创建进程!!只不过是替换了正文段数据段等而已,并不会拥有一个新的PID和PCB;文中说明的有偏差。是同一个进程而是不是PID相同的两个进程。
4.原文中写的蛮好的,为啥要自己提供?自己提供的话至少也要参考下APUE吧
[2]
linux [Chrome 57.0|Mac 10.11] 发表于 2017-04-28 22:05 的评论:
1、应该翻译为“写时复制”。
2、同意。
3、确实,exec 并非创建了新的进程,只是替代。但是由于原进程被替代,所以习惯上认为是创建了新的、PID 一样的进程——这确实是不够严谨。
4、原文关于创建主要是这样的一段
“A new process is normally created when an existing process makes an exact copy of itself in memory. The child process will have the same environment as its parent, but only the process ID number is different.”
这里 “但是只有进程号是不同的”,在 exec 的情况下是不对的,因此才没有采用原文。

谢谢您的认真阅读和意见!
来自浙江嘉兴的 Chrome 58.0|GNU/Linux 用户 2017-05-01 17:29 1 回复
原文是正确的。要区分出fork和exec之间的区别。

fork之后不一定要exec,exec之前也不一定要fork。

fork之后并不是一定要exec,而父进程和子进程可以执行同一个可执行文件内的不同代码,最简单形式下的daemonize就是这么做的

所以最严谨的说法是,创建进程的唯一方法只有fork。
fork和exec之间并无本质联系。而关键是fork
[1]
来自浙江嘉兴的 Chrome 58.0|GNU/Linux 用户 发表于 2017-04-28 07:13 的评论:
在 Linux 中创建进程一节有问题哦。
1.创建进程只有fork或vfork.并执行exec。还有写复制应该翻译成写时复制。fork那一段写的都好别扭。
2.system命令只不过把fork和exec的任务交给了shell来完成而已,硬要算的话暂且也算一种把。
3.调用exec系列函数不会创建进程!!只不过是替换了正文段数据段等而已,并不会拥有一个新的PID和PCB;文中说明的有偏差。是同一个进程而是不是PID相同的两个进程。
4.原文中写的蛮好的,为啥要自己提供?自己提供的话至少也要参考下APUE吧
linux [Chrome 57.0|Mac 10.11] 2017-04-28 22:05 1 回复
1、应该翻译为“写时复制”。
2、同意。
3、确实,exec 并非创建了新的进程,只是替代。但是由于原进程被替代,所以习惯上认为是创建了新的、PID 一样的进程——这确实是不够严谨。
4、原文关于创建主要是这样的一段
“A new process is normally created when an existing process makes an exact copy of itself in memory. The child process will have the same environment as its parent, but only the process ID number is different.”
这里 “但是只有进程号是不同的”,在 exec 的情况下是不对的,因此才没有采用原文。

谢谢您的认真阅读和意见!
来自浙江嘉兴的 Chrome 58.0|GNU/Linux 用户 2017-04-28 07:13 7 回复
在 Linux 中创建进程一节有问题哦。
1.创建进程只有fork或vfork.并执行exec。还有写复制应该翻译成写时复制。fork那一段写的都好别扭。
2.system命令只不过把fork和exec的任务交给了shell来完成而已,硬要算的话暂且也算一种把。
3.调用exec系列函数不会创建进程!!只不过是替换了正文段数据段等而已,并不会拥有一个新的PID和PCB;文中说明的有偏差。是同一个进程而是不是PID相同的两个进程。
4.原文中写的蛮好的,为啥要自己提供?自己提供的话至少也要参考下APUE吧

返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。