2019-2020-1 20199328《Linux内核原理与分析》第七周作业

分析Linux内核创建一个新进程的过程

2019/10/28 18:34:58

笔记部分

  • 首先是查看进程描述符(用来描述进程,其代码比较庞大)的一些内容

  • 系统调用回顾

    fork、vfork、clone三个系统调用都可以创建一个新进程,而且都通过do_fork来实现进程。Linux通过复制父进程来创建新的进程,并设置pid,在thread中设置eip,esp。

  • 浏览创建进程的相关代码

实验部分

- 跟踪内核中fork函数的处理过程

  1. 首先删除menu,并且clone一个新的,然后覆盖掉test.c文件,以不受前面实验的影响,然后进行编译。
  2. 利用help命令查看,发现多了一个fork函数,执行后会创建一个子进程,可以看到父进程和子进程都输出信息了。
  3. 开始调试,加载内核,加载内核符号表并连接。
  4. 设置断点,依次停在do_fork,copy_process,dup_task_struct,copy_thread,ret_from_fork,直到sys_call无法再跟踪

猜你喜欢

转载自www.cnblogs.com/llj76720197/p/11754253.html