3 地址映射与共享
3.1 实验目的
深入理解操作系统的段、页式内存管理,深入理解段表、页表、逻辑地址、线性地址、
物理地址等概念;
实践段、页式内存管理的地址映射过程;
3.2 实验内容
本次实验的基本内容是:
用 Bochs 调试工具跟踪 Linux 0.11 的地址翻译(地址映射)过程,了解 IA-32 和 Linux
0.11 的内存管理机制;
3.2.1 跟踪地址翻译过程
首先以汇编级调试的方式启动 bochs,引导 Linux 0.11,在 0.11 下编译和运行 test.c。它
是一个无限循环的程序,永远不会主动退出。然后在调试器中通过查看各项系统参数,从
逻辑地址、LDT 表、GDT 表、线性地址到页表,计算出变量 i 的物理地址。最后通过直接
修改物理内存的方式让 test.c 退出运行。test.c 的代码如下:
#include <stdio.h>
int i = 0x12345678;
int main(void)
{
printf("The logical/virtual address of i is 0x%08x", &i);
fflush(stdout);
while (i) //注意是字母 i 不是数字 1
;
return 0;
}
3.3 思考题
完成实验后,在实验报告中回答如下问题:
1.对于地址映射实验部分,列出你认为最重要的那几步(不超过 4 步),并给出你获
评论0
最新资源