内核线程用kernal_thread创建,该函数这样调用do_fork:
do_fork(flags|CLONE_VM|CLONE_UNTRACED, 0, ®s, 0, NULL, NULL);
关于进程0:
多cpu系统启动时,会启动 一个cpu,禁止其它cpu,运行在cpu0上的进程0(swapper)激活其它cpu。通过copy_process()创建其它swapper进程。并把0传过去作为他们的新pid