课堂练习2.1:外部中断

第1关:时钟中断的发生

cp /data/workspace/myshixun/exp1/1.tgz ~/os/
cd os/linux-0.11-lab
tar -zxvf ../1.tgz
rm -rf cur
ln -s 1 cur
cd 1/linux/
make
cd ../..
./run
出现如下画面表示加载完毕

在这里插入图片描述

关闭bochs虚拟机
./rungdb
打开另一个终端
cd os/linux-0.11-lab/
./mygdb
break do_timer //设置断点
display jiffies
c 回车 // 一直按到第一行被0覆盖

在这里插入图片描述

第2关:第一次时钟中断

quit //  退出gdb,保留第一关的环境
在一个终端里切换到目录~/os/linux-0.11-lab
cd os/linux-0.11-lab
./rungdb
打开另一个终端
cd os/linux-0.11-lab
./mygdb
break do_timer
c
p jiffies
bt
finish
disas
si
si
disas
b *0x77dd
c
si
disas
找到箭头对应的地址:0x0000769c

第3关:第六次时钟中断

quit //  退出gdb,保留第一关的环境
在一个终端里切换到目录~/os/linux-0.11-lab
cd os/linux-0.11-lab
./rungdb
打开另一个终端
cd os/linux-0.11-lab
./mygdb
break do_timer
c
p jiffies
c
p jiffies
c
p jiffies
c
p jiffies
c
p jiffies
c
p jiffies
bt
finish
disas
si
si
disas
b *0x77dd
c
si
disas
找到箭头对应的地址:

在这里插入图片描述

第4关:修改版本 1 内核源码,使得每次时钟中断发生时,都在屏幕上输出字符 ‘t’

cp /data/workspace/myshixun/exp1/1.tgz ~/os/
cd os/linux-0.11-lab
tar -zxvf ../1.tgz
rm -rf cur
ln -s 1 cur
cd 1/linux/
make
cd ../..
./run

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cd 1/linux/
make
cd ../..
./run

在这里插入图片描述

第5关:修改版本 0 内核

cp /data/workspace/myshixun/exp1/1.tgz ~/os/
cd os/linux-0.11-lab
tar -zxvf ../1.tgz
rm -rf cur
ln -s 0 cur
cd 0/linux/
make

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

make
cd ../..
./run

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_52331221/article/details/126754843