课堂练习4.1:段式内存管理

本文介绍了如何通过gdb调试1.3版本的Linux内核,详细探讨了1号和0号进程中的mynext变量的逻辑地址、线性地址及其所在段信息,涉及汇编指令、描述符表和进程控制块的定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1关:1 号进程 mynext 变量的逻辑地址与线性地址

任务描述

本关任务调试版本 1.3 内核并回答问题:

  1. 1 号进程的函数调用 output_char() 所对应的第一条汇编指令的地址是多少?
  2. 1 号进程的 mynext 变量所在的段地址和段内偏移是多少?该段地址对应到几号描述符?存放在哪个段描述符表中(GDT/LDT)?
  3. 1 号进程的进程控制块中的 ldt 数组的起始地址是多少?其中 1 号和 2 号描述符里存放的段起始地址分别是多少?
  4. 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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值