分类:
2009-09-26 16:31:23
最近在研究《自己动手写操作系统》这本书,很不错的一本书。不过在研究的过程中我发现当Virtual PC 2007从软盘启动的时候,竟然不去检测引导区标志55AA而直接将引导代码装入内存去执行。是不是Virtual PC 2007里可以设置成去检测或不去检测引导区标志呢?如果有哪位仁兄能告诉我,感激不禁。
具体是这样的,在书开头有这么个代码
|
我将最后两行代码改成
|
结果也能正常加载如下图
附记(10月8日)
都公示了这么多天,没人响应,算了,我宣布如下:
当VirtualPC2007从软盘启动时,它的的确确不去检测软盘的0磁道0柱面1扇区的引导区标志。另一个强大的调试工具Bochs则没有这种bug(这个问题应该算bug吧),因为Bochs就是为调试而生的,虽然在运行大型操作系统时相当的慢,这也不能怪它,谁叫它用软件全面的模拟了x86系统呢。
另(10.15)
在Bochs的配置文件中可以设置成不检测该标志,具体说明如下:
# FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
# Enables or disables the 0xaa55 signature check on boot floppies
# Defaults to disabled=0
# Examples:
# floppy_bootsig_check: disabled=0
# floppy_bootsig_check: disabled=1
以上
特此
(有啥问题请留言,或给我发邮件seapeek@gmail.com,呵呵,虽然我也是菜鸟)