Linux内核——fork()创建子进程后会发生什么?

Linux内核——fork()创建子进程后会发生什么?,linux,linux-kernel,fork,scheduled-tasks,scheduler,Linux,Linux Kernel,Fork,Scheduled Tasks,Scheduler,我想知道在do_fork完成创建子进程并调用wake_up_new_task之后会发生什么 在子进程开始执行之前会发生什么?新流程的切入点在哪里 在我的问题中,我问的是Linux内核中的函数和代码,新分叉的进程在开始执行之前必须经历这些过程。例如,我知道它必须从条目_64.S中的_fork汇编代码中删除。它也会通过时间表。但还有什么?有人能给我完整的图片吗 谢谢。使用源代码,卢克!Linux中没有秘密。只要下载一个源代码包,如果你还没有这样做。分叉进程与其父进程一样,似乎从fork调用返回,但返

我想知道在do_fork完成创建子进程并调用wake_up_new_task之后会发生什么

在子进程开始执行之前会发生什么?新流程的切入点在哪里

在我的问题中,我问的是Linux内核中的函数和代码,新分叉的进程在开始执行之前必须经历这些过程。例如,我知道它必须从条目_64.S中的_fork汇编代码中删除。它也会通过时间表。但还有什么?有人能给我完整的图片吗


谢谢。

使用源代码,卢克!Linux中没有秘密。只要下载一个源代码包,如果你还没有这样做。分叉进程与其父进程一样,似乎从fork调用返回,但返回代码与父进程接收的不同。当然,这就是孩子知道自己是孩子的方式,反之亦然。@MikeRobinson。我完全同意!我已经玩了一段时间了。但到目前为止,我所得到的是一堆互不相关的理解孤岛。我知道这个过程必须经历的一些停顿,但我没有完整的画面。我想把这些岛屿连接起来,这样我就可以修复我现在正在处理的bug。而且,我的问题远远超出了你所提到的,而且似乎还会回来。。。。我问的是Linux内核中的实际汇编代码和c代码。那么,也许你应该提出一个不同的问题,谈谈你真正关心的问题,即:你现在正在处理的bug!也许这个问题就是所谓XY问题的一个例子。@MikeRobinson。。。。嗯,我想先了解完整的情况,然后自己先修复这个bug。如果这不起作用,我会描述我的问题并向人们寻求线索。@MikeRobinson我想这就是我要寻找的: