赞
踩
进程是操作系统中一个非常重要的概念。程序的运行是通过进程来完成的。在层次结构的操作系统中,进程不仅是系统分配资源的基本单位,而且是 CPU 调度的基本单位。进程管理是操作系统最重要的功能之一。通过本实训将会学习到:Linux 0.11 的进程的创建方法。
本关任务回答问题:
为了完成本关任务,你需要掌握: 1.系统调用的处理过程; 2.TR 寄存器的作用; 3.在 0 号进程执行 fork 系统调用时,所用陷入指令的地址是多少; 4.0 号进程刚执行完 fork 系统调用是在什么时候; 5.在 bochsdbg 调试模式下,如何判断当前进程是几号进程; 6.在 bochsdbg 中如何查看寄存器的值; 7.在 bochsdbg 中如何反汇编; 8.在 bochsdbg 中如何单步执行。
本实训需要设置内核版本 1 为调试分析的对象,用 gdb 调试内核,内核版本 1 的压缩文件存放在/data/workspace/myshixun/exp1
中。
实验过程
- ls /data/workspace/myshixun/exp1
- cp /data/workspace/myshixun/exp1/1.tgz ~/os
- cd os/linux-0.11-lab
- tar -zxvf ../1.tgz 1
- rm -rf cur
- ln -s 1 cur
- ls
- cd 1/linux
- make
- cd ../..
- ./rungdb
另开一个终端
cd os/linux-0.11-lab ./mygdb
答案
本关任务回答问题:
为了完成本关任务,你需要掌握: 1.系统调用的处理过程; 2.TR 寄存器的作用; 3.如何查看任何一个现有进程的进程控制块; 4. 1 号进程所执行的第一条语句的地址; 5. 0 号进程执行 fork 系统调用时的陷入指令地址; 6.如何单步执行一条指令直到其运行结束(step over); 7.进程的核心栈与进程控制块之间的位置关系。
本实训需要设置内核版本 1 为调试分析的对象,用 gdb 调试内核,内核版本 1 的压缩文件存放在/data/workspace/myshixun/exp1
中。
实验过程
因为是和第一个是同时做的,所以不需要重新配置环境,如果重启释放环境,配置环境过程见下
- ls /data/workspace/myshixun/exp1
- cp /data/workspace/myshixun/exp1/1.tgz ~/os
- cd os/linux-0.11-lab
- tar -zxvf ../1.tgz 1
- rm -rf cur
- ln -s 1 cur
- ls
- cd 1/linux
- make
- cd ../..
- ./rungdb
另开一个终端
cd os/linux-0.11-lab ./mygdb
答案
本实训分析 Linux 0.11 的进程创建过程,并练习相关系统调用的使用方法。
本关任务:修改版本 0 内核,使每次进程创建时都输出父子进程的进程号,使每次执行可执行文件时,都输出可执行文件的名字和当前进程号。
为了完成本关任务,你需要掌握: 1.系统调用的处理过程; 2.如何使每次进程创建时都输出父子进程的进程号; 3.如何使每次执行可执行文件时都输出可执行文件的名字和当前进程号。
本实训需要设置内核版本 0 为调试分析的对象,修改完毕之后请确认cur
指向链接是否正确,系统能否正常使用。
实验过程
打开桌面上的vscode 添加如下代码 添加如下代码
cd os/linux-0.11-lab/0/linux
cd ../.. ./run
本关任务:修改版本 0 内核和硬盘达到以下目标。
set
和ls -l /
。为了完成本关任务,你需要掌握: 1.如何修改硬盘镜像文件中的内容; 2.在修改了硬盘后,启动时报错怎么办; 3.系统启动时会执行哪些可执行文件。
实验过程
先把第一关改过的部分删掉,可能会影响评测
打开vscode
改成和我一样
评测即可成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。