linux内核创建进程最终会调用do_fork()来完成创建工作,源码位于kernel/fork.c文件中,该函数调用copy_process()函数来为新进程创建一个内核栈,thread_info结构和task_struct,子进程的状态被设置为TASK_UNINTERRUPTIBLE,最后返回一个指向子进程的指针。