Linux系统中提供系统调用fork、vfork、clone的接口用于创建多进程,内核本身创建内核线程的接口是kernel_thread。而它们最终都会调用_do_fork()来创建进程或者内核线程。它们的区别是在于flag的不同,大致的流程如下图所示:
![_do_fork简要流程](https://img-blog.csdnimg.cn/20200703233734174.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMwMjk1NjA5,size_16,color_FFFFFF,t_70)
Linux系统中提供系统调用fork、vfork、clone的接口用于创建多进程,内核本身创建内核线程的接口是kernel_thread。而它们最终都会调用_do_fork()来创建进程或者内核线程。它们的区别是在于flag的不同,大致的流程如下图所示: