第1关:1 号进程 mynext 变量的逻辑地址与线性地址
任务描述
本关任务调试版本 1.3 内核并回答问题:
- 1 号进程的函数调用 output_char() 所对应的第一条汇编指令的地址是多少?
- 1 号进程的 mynext 变量所在的段地址和段内偏移是多少?该段地址对应到几号描述符?存放在哪个段描述符表中(GDT/LDT)?
- 1 号进程的进程控制块中的 ldt 数组的起始地址是多少?其中 1 号和 2 号描述符里存放的段起始地址分别是多少?
- 1 号进程的 mynext 变量所在的线性地址是多少?
环境准备
本实训 5 个关卡全部使用版本 1.3 内核进行调试,内核文件存在/data/workspace/myshixun/exp1
下。
代码及答案
1.配置1.3环境
cp /data/workspace/myshixun/exp1/1.3.tgz ~/os/
cd ~/os/linux-0.11-lab/
tar -zxvf ../1.3.tgz
rm -rf cur
ln -s 1.3 cur
cd 1.3/linux
make
cd ../..
2.开启gdb调试
刚刚打开的终端输入./rungdb,打开另一个终端切换到linux-0.11-lab目录下,./mygdb