Linux内核及分析 第六周 分析Linux内核创建一个新进程的过程

时间:2022-04-17 06:16:58

实验过程

1.github上克隆相应的mengning/menu.git

Linux内核及分析 第六周 分析Linux内核创建一个新进程的过程

2.测试menuOS,测试fork直接执行结果

Linux内核及分析 第六周 分析Linux内核创建一个新进程的过程

3.配置调试系统,进入gdb调试,利用file linux-3.18.6/vmlinux和target remote:1234来配置加载初始调试环境

Linux内核及分析 第六周 分析Linux内核创建一个新进程的过程

4.在linux内核进程创建可能用到的点设置断点分别为sys_clone,do_fork,dup_task_struct,copy_thread,copy_process和ret_from_fork.

Linux内核及分析 第六周 分析Linux内核创建一个新进程的过程

Linux内核及分析 第六周 分析Linux内核创建一个新进程的过程

总结:

1.通过调用do_fork来实现进程的创建;

2.复制父进程PCB--task_struct来创建一个新进程,要给新进程分配一个新的内核堆栈;

3.修改复制过来的进程数据,比如pid、进程链表等等执行copy_process和copy_thread 4、成功创建新进

作者: 王雪铖

原创作品转载请注明出处

《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000