《Orange's 一个操作系统的实现》读书手记3(2)--- [ 保护模式(Protect Mode)]

保护模式(Protect Mode)(2)

 

3.1.1 保护模式的运行环境

  前面我们编写的程序都是运行在软盘的0面0磁道第1扇区,只有512个字节,这点弹丸之地实在满足不了日益增长的程序代码的需要。

  有两个办法可以解决这个矛盾:

  一是在这个512字节里专门安排一个引导代码,让它可以读取我们写的程序,然后运行它; 二是用现成的DOS系统,把我们的程序编译成COM文件,让DOS来执行它。

  我们不禁要问,不是我们自己写操作系统么?怎么把DOS操作系统搅和进来了?

  作者推荐用第二种简单的但不怎么酷的方法:

  1. 去Bochs的官方网站h t t p://bochs.sourceforge.net/diskimages.html 下载一个freedos-img.tar.gz ,复制我们的工作目录,解压后将其中的a.img 改名为freedos.img

ok,我已经下好了,你呢?

  2. 用bximag生成一个软盘映像,起名为pm.img

  3. 修改当前工作目录下的bochsrc(还记得不?第二章我们自己写的,把它拷到当前工作目录来),确保其中有以下三行:

  floppya:1_44=freedos.img, status=inserted

  floppyb:1_44=pm.img, status=inserted

  boot:a

  4.启动bochs ,待FreeDos启动完毕后格式化B盘,

  5. 将上节的代码pmtest1.asm 中的org 07c00h 改为 org 100h ,并重新编译:

  nasm pmtest1.asm -o pmtest1.com

  6. 将pmtest1.com复制到pm.img上:

  sudo mkdir  /mnt/floppy

  sudo mount -o loop pm.img /mnt/floppy

  sudo cp pmtest1.com  /mnt/floppy

  sudo umount /mnt/floppy

  7.重新运行bochs ,A:/>B: 切换到B盘,执行 pmtest1.com,OK! 我们看到什么了?

  好的,有了DOS兄的帮忙,我们就可以大展身手了。开始我们的下一步,揭密GDT......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值