第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