课堂练习4.3:段页式内存管理

第1关:进程创建前后页目录和页表的变化

任务描述
本关任务分析版本 1 内核回答问题:
1.在 0 号进程执行 fork 系统调用之前,线性地址空间到物理地址空间的映射关系是怎样的?
2.在 0 号进程刚执行完 fork 系统调用时,线性地址空间到物理地址空间的映射关系是怎样的?
3.在 0 号进程执行 fork 系统调用前后,页目录发生了怎样的变化?

相关知识
为了完成本关任务,你需要掌握:
1.如何跟踪到一个系统调用的陷入指令(int 0x80)执行之前;
2.在 bochsdbg 中,如何跟踪到 0 号进程执行 fork 系统调用之前?如何继续跟踪到刚执行完该 fork 系统调用?
3.如何分析线性地址空间到物理地址空间的映射关系;
4.如何直接显示线性地址空间到物理地址空间的映射关系;
5.在 bochsdbg 调试模式下,如何判断当前进程是几号进程;
6.如何计算一个线性地址对应的物理地址;
7.如何查看 CR3 寄存器的值;
8.如何计算一个线性地址的高 10 位和中间 10 位的值;
9.页目录项和页表项的格式是什么;
10.如何查看某个页目录项的值;
11.在 bochsdbg 中,如何直接查看某物理地址处的值。

环境准备
本关卡使用版本 1 内核进行分析,内核文件存放在/data/workspace/myshixun/exp1中。

编程要求
通过 gdb 和 dbg 调试查找答案,将第一关的答案填写在/data/workspace/myshixun

你可能感兴趣的:(Educoder实训,linux,网络,运维)