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

作业信息

这个作业属于哪个课程 <2020-2021-1Linux内核原理与分析)>
这个作业要求在哪里 https://edu.cnblogs.com/campus/besti/2020-2021-1LKPA/homework/11266
这个作业的目标 在MenuOS里添加一个fork命令,并进行跟踪分析
作业正文 https://www.cnblogs.com/bestYZF/p/14021170.html
  1. 在MenuOS里添加一个fork命令
    使用以下命令:
cd ~/LinuxKernel
rm menu -rf
git clone https://github.com/mengning/menu.git
cd menu 
mv test_fork.c test.c
make rootfs


2.使用GDB跟踪分析
在sys_clone、do_fork、dup_task_struct、copy_process、copy_thread、ret_from_fork等处设置断点,然后跟踪这个过程。

3.函数分析
do_fork()主要完成调用copy_process()复制父进程信息、获得pid、调用wake_up_new_task将子进程加入调度器队列等待获得分配cpu资源运行、通过clone_flags标志做一些辅助工作。dup_task_struct函数为子进程分配好内核栈,copy_thread完成内核栈关键信息初始化,ret_from_fork返回用户态进程。

posted @ 2020-11-22 20:30  我只是飞  阅读(75)  评论(0编辑  收藏  举报