建网站深圳,腾讯企点怎么注销,防恶意竞价点击软件,网站建设主要有哪些成本4-1 课堂练习4.1#xff1a;段式内存管理
段式内存管理以段为单位分配内存空间#xff0c;段内连续#xff0c;段间可以不连续。段可以很大#xff0c;比如数据段、代码段、栈段等。本实训分析 Linux 0.11 的段式内存管理技术。 第1关1 号进程 mynext 变量的逻辑地址与线性…
4-1 课堂练习4.1段式内存管理
段式内存管理以段为单位分配内存空间段内连续段间可以不连续。段可以很大比如数据段、代码段、栈段等。本实训分析 Linux 0.11 的段式内存管理技术。 第1关1 号进程 mynext 变量的逻辑地址与线性地址
任务描述
本关任务调试版本 1.3 内核并回答问题
1 号进程的函数调用 output_char() 所对应的第一条汇编指令的地址是多少1 号进程的 mynext 变量所在的段地址和段内偏移是多少该段地址对应到几号描述符存放在哪个段描述符表中GDT/LDT1 号进程的进程控制块中的 ldt 数组的起始地址是多少其中 1 号和 2 号描述符里存放的段起始地址分别是多少1 号进程的 mynext 变量所在的线性地址是多少
相关知识
为了完成本关任务你需要掌握 1.如何查看 1 号进程的函数调用 output_char() 所对应的汇编指令 2.如何计算 1 号进程的 mynext 变量的逻辑地址(段地址:段内偏移) 3.段寄存器值(如 ds )的含义是什么 4.如何查看进程的 LDT 5.如何从段描述符的值计算出段的起始地址。
环境准备
本实训 5 个关卡全部使用版本 1.3 内核进行调试内核文件存放在/data/workspace/myshixun/exp1下。
实验过程及答案
实验过程 ls /data/workspace/myshixun/exp1
cp /data/workspace/myshixun/exp1/1.3.tgz ~/os cd os/linux-0.11-lab
tar -zxvf ../1.3.tgz 1.3 rm -rf cur
ln -s 1.3 cur
lscd 1.3/linux
make cd ../..
./rungdb 另开一个终端 cd os/linux-0.11-lab
./mygdb 答案 第2关0号进程 mynext 变量的逻辑地址与线性地址
任务描述
本关任务调试版本 1.3 内核回答问题
0 号进程的函数调用 output_char() 所对应的第一条汇编指令的地址是多少0 号进程的 mynext 变量所在的段地址和段内偏移是多少该段地址对应到几号描述符存放在哪个段描述符表中GDT/LDT0 号进程的进程控制块中的ldt数组的起始地址是多少其中 1 号和 2 号描述符里存放的段起始地址分别是多少0 号进程的 mynext 变量所在的线性地址是多少
相关知识
为了完成本关任务你需要掌握
如何查看 0 号进程的函数调用 output_char() 所对应的汇编指令如何计算 0 号进程的 mynext 变量的逻辑地址(段地址:段内偏移)段寄存器值(如 ds )的含义是什么如何查看进程的 LDT 如何从段描述符的值计算出段的起始地址。
编程要求
根据相关知识修改版本 1.3 内核回答问题 通过 gdb 调试查找答案将第二关的答案填写在/data/workspace/myshixun/第二关.txt中。 0 号进程的函数调用 output_char() 所对应的第一条汇编指令的地址是多少 0 号进程的 mynext 变量所在的段地址和段内偏移是多少该段地址对应到几号描述符存放在哪个段描述符表中GDT/LDT 0 号进程的进程控制块中的 ldt 数组的起始地址是多少其中 1 号和 2 号描述符里存放的段起始地址分别是多少 0 号进程的 mynext 变量所在的线性地址是多少
实验过程及答案
延用第一关配置非必要不重新配置环境
实验过程 ls /data/workspace/myshixun/exp1
cp /data/workspace/myshixun/exp1/1.3.tgz ~/os cd os/linux-0.11-lab
tar -zxvf ../1.3.tgz 1.3 rm -rf cur
ln -s 1.3 cur
lscd 1.3/linux
make cd ../..
./rungdb 另开一个终端 cd os/linux-0.11-lab
./mygdb 答案 4-2 课堂练习4.1段式内存管理
段式内存管理以段为单位分配内存空间段内连续段间可以不连续。段可以很大比如数据段、代码段、栈段等。本实训分析 Linux 0.11 的段式内存管理技术。 第1关0号进程和1号进程的mynext变量的取值变化
任务描述
本关任务调试版本 1.3 内核回答问题
1 号进程的 output_char 函数调用会执行几次每次调用时1 号进程和 0 号进程的 mynext 变量的值分别是多少
相关知识
为了完成本关任务你需要掌握
如何查看 1 号进程的函数调用 output_char() 所对应的汇编指令在 gdb 中如何正确查看 1 号进程的 mynext 变量的值如何在断点被捕获时自动执行一组命令段寄存器值(如 ds )的含义是什么如何查看进程的 LDT 。
编程要求
根据相关知识修改版本 1.3 内核回答问题 通过 gdb 调试查找答案将第三关的答案填写在/data/workspace/myshixun/第三关.txt中。
1 号进程的 output_char 函数调用会执行几次每次调用时1 号进程和 0 号进程的 mynext 变量的值分别是多少
实验过程及答案
实验过程 ls /data/workspace/myshixun/exp1
cp /data/workspace/myshixun/exp1/1.3.tgz ~/os cd os/linux-0.11-lab
tar -zxvf ../1.3.tgz 1.3 rm -rf cur
ln -s 1.3 cur
lscd 1.3/linux
make cd ../..
./rungdb 另开一个终端 cd os/linux-0.11-lab
./mygdb 由前两关实验我们得到了0号进程和1号进程的线性地址 答案 第2关LDTR 寄存器
任务描述
本关任务调试版本 1.3 内核回答问题
1 号进程在用户态运行时LDTR 寄存器的值是多少它指向 GDT 中的几号描述符该段描述符内的段起始地址是多少指向哪个进程的 ldt 数组0 号进程在用户态运行时LDTR 寄存器的值是多少它指向 GDT 中的几号描述符该段描述符内的段起始地址是多少指向哪个进程的 ldt 数组
相关知识
为了完成本关任务你需要掌握
在 bochsdbg 中如何跟踪到 1 号进程在用户态运行时如何查看 1 号进程的函数调用 output_char() 所对应的汇编指令在 bochsdbg 中如何查看 LDTR 的值其含义是什么段寄存器值(如 DS )的含义是什么如何查看进程的 LDT 如何从段描述符的值计算出段的起始地址。
编程要求
根据相关知识修改版本 1.3 内核回答问题 通过 gdb 调试查找答案将第四关的答案填写在/data/workspace/myshixun/第四关.txt中。
1 号进程在用户态运行时LDTR 寄存器的值是多少它指向 GDT 中的几号描述符该段描述符内存的段起始地址是多少指向哪个进程的 ldt 数组0 号进程在用户态运行时LDTR 寄存器的值是多少它指向 GDT 中的几号描述符该段描述符内存的段起始地址是多少指向哪个进程的 ldt 数组
实验过程及答案
延用第一关配置非必要不重新配置环境
实验过程 ls /data/workspace/myshixun/exp1
cp /data/workspace/myshixun/exp1/1.3.tgz ~/os cd os/linux-0.11-lab
tar -zxvf ../1.3.tgz 1.3 rm -rf cur
ln -s 1.3 cur
lscd 1.3/linux
make cd ../..
./rundbg 答案 第3关内核代码段和数据段的段基址 任务描述
本关任务调试版本 1.3 内核回答问题
0 号进程执行到 sys_pause 时默认数据段CS和默认数据段DS的值分别是多少其基地址分别是多少1 号进程执行到 sys_pause 时默认数据段CS和默认数据段DS的值分别是多少其基地址分别是多少
相关知识
为了完成本关任务你需要掌握
在 gdb 中如何查看全局描述符表在 Linux 0.11 中内核程序运行时访问的线性地址空间是什么?在 bochsdbg 中如何查看 LDTR 的值其含义是什么?段寄存器值(如 DS )的含义是什么如何从段描述符的值计算出段的起始地址。
编程要求
根据相关知识修改版本 1.3 内核回答问题 通过 gdb 调试查找答案将第五关的答案填写在/data/workspace/myshixun/第五关.txt中。
1.0 号进程执行到 sys_pause 时默认数据段CS和默认数据段DS的值分别是多少其基地址分别是多少 2.1 号进程执行到 sys_pause 时默认数据段CS和默认数据段DS的值分别是多少其基地址分别是多少
实验过程及答案
延用第一关配置非必要不重新配置环境
实验过程 ls /data/workspace/myshixun/exp1
cp /data/workspace/myshixun/exp1/1.3.tgz ~/os cd os/linux-0.11-lab
tar -zxvf ../1.3.tgz 1.3 rm -rf cur
ln -s 1.3 cur
lscd 1.3/linux
make cd ../..
./rungdb 另开一个终端 cd os/linux-0.11-lab
./mygdb 答案