进程创建与内核线程详解
1. copy_process()函数
copy_process() 函数用于设置子进程执行所需的进程描述符和其他内核数据结构。其参数与 do_fork() 相同,再加上子进程的 PID。以下是该函数的主要步骤:
1. 检查标志兼容性 :检查 clone_flags 参数中传递的标志是否兼容,在以下情况会返回错误码:
- CLONE_NEWNS 和 CLONE_FS 标志都被设置。
- CLONE_THREAD 标志被设置,但 CLONE_SIGHAND 标志被清除(同一线程组中的轻量级进程必须共享信号)。
- CLONE_SIGHAND 标志被设置,但 CLONE_VM 标志被清除(共享信号处理程序的轻量级进程也必须共享内存描述符)。
2. 执行安全检查 :调用 security_task_create() 和 security_task_alloc() 进行额外的安全检查。
3. 获取子进程描述符 :调用 dup_task_struct() 函数,该函数会执行以下操作:
- 调用 __unlazy_fpu() 保存父进程的 FP
超级会员免费看
订阅专栏 解锁全文
1430

被折叠的 条评论
为什么被折叠?



