作业信息
这个作业属于哪个课程 | <2020-2021-1Linux内核原理与分析)> |
---|---|
这个作业要求在哪里 | <2020-2021-1Linux内核原理与分析第七周作业> |
这个作业的目标 | <进程的描述和进程的创建> |
作业正文 | <本博客链接> |
进程的描述与进程的创建
操作系统内核实现操作系统的三大管理功能
- 进程管理
- 内存管理
- 文件系统
进程的三种状态
- 就绪态
- 运行态
- 阻塞状态
三种状态的转换如下所示:
给Menu OS添加fork指令
具体指令如下
cd ~/LinuxKernel
rm menu -rf
git clone https://github.com/mengning/menu.git
cd menu
mv test_fork.c test.c
make rootfs
在Menu OS中输入fork可以看到新增了fork指令
启动gdb跟踪调试内核程序
输入如下指令:
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S
重新打开一个shell输入如下指令:
gdb
file linux-3.18.6/vmlinux
target remote:1234
在程序中添加断点
b sys_clone
b do_fork
b dup_task_struct
b copy_process
b copy_thread
b ret_from_fork
用info break
指令查看设置的断点
运行内核程序,跟踪设置的几个断点