linux - 如何找到使用 _do_fork() 创建新进程的基本例程?
问题描述
我是 Linux 新手,我被分配了这个
在 Linux 内核源代码中,查找 _do_fork(),创建新进程的基本例程
- copy_process() 的目的(给出高级描述)是什么?
- 在 copy_process 中,哪些代码可以防止 fork() 炸弹?
有人可以帮帮我吗?
解决方案
首先,您需要知道fork()
它将使用系统调用并从名为“sys_fork()”的中断表中找到中断函数,如下所示
SYSCALL_DEFINE0(fork)
{
......
return _do_fork(SIGCHLD, 0, 0, NULL, NULL, 0);
}
所以fork的核心是_do_fork()
这个函数将做两个主要工作
- 调用
copy_process()
内核中进程/线程的复制结构,命名为task_struct
- 调用
wake_up_new()
唤醒任务
推荐阅读
- clojure - Clojure:通过实例变量或字符串(不是类名符号)调用java静态方法/字段
- r - 如何在轴的两端添加标签?
- node.js - 不包括路由 url 的第一部分
- javascript - 通过地图而不是 for 循环渲染
- wso2 - 在 WSO2 身份服务器 5.10.0 中将本地用户帐户链接到联合用户的正确方法是什么
- python - 两次电话服务的分钟数
- python - 保存 itertools 产品循环值,然后从最后一个结果恢复
- java - 如何强制 Spring 框架使用我的日志框架?
- c# - C# - 当使用 ProcessStartInfo() 调用 bat 时,我该怎么做才能运行 .bat 文件中的脚本?
- python - 如何使用 matplotlib(不使用 pandas)绘制嵌套字典?