前几天和老板联系,说让我先学一些内核方面的知识,《Computer Architecture 3rd Editon》也先不要读了,换读《Organization & Design Hardware/Sofware Interface》。谨从师命。

  以前读过内核,书用的是毛德操、胡希明的《Linux内核源代码情景分析》,可是读得云里雾里,身心受到了极大的摧残,这次不想重蹈覆辙了,要循序渐进,于是从于渊的《自己动手写操作系统》入手,先自己动手实践一遍再去读代码,应该会更容易理解更有心得。

  《自》这本书写的不错,步骤详细理论清晰,不过读完第二章还是遇到了一些问题:

P26 安装虚拟PCDOS

  安装完毕后需要设置虚拟机DOS与宿主机Windows的文件共享,作者在P27写到:“Virtual PC 提供了非常方便的插件,使得……”

  可是我在安装这个插件的过程中遇到了一些问题。

  我安装的是 Virtual PC 2007,然后在上面虚拟了MS DOS 7.1。

  然后开始安装Addition:启动DOS,然后点击菜单 Action -> Install or Update Virtual PC Additoions。如下图:
然后弹出对话框:
点击Continue之后没有反应。什么原因呢?

  原来点击“Install or Update Virtual PC Additoions”之后,Virtual PC 把 程序文件夹下 \Virtual Machine Additions\VMAdditions.iso 文件抓进了它的虚拟光驱。这个镜像文件里有什么内容呢?

  用Daemon Tool 查看其内容:

  三个文件夹:DOS,OS/2,Windows。里面都是一些.exe文件

  文件Autorun.inf,内容为:

    [autorun]

    OPEN=Windows\setup.exe

  由此可知,如果想安装这个光盘镜像里的内容,需要先在Virtual PC里虚拟一个Windows,然后再通过虚拟的Windows加载这个光盘,来安装需要的插件。

  哎……我不能再往上面虚拟个Windows了,我的机器硬件配置不允许(我的硬盘已经被我划的体无完肤了,而且空间紧张)。怎么办?解决办法:

  让我们淘汰Virtual PC 2007,回归Virtual PC 2004吧。为什么?

  因为在Virtual PC 2004 的 安装文件夹下Virtual Machine Additions里有一个“DOS Virtual Machine Additions.vfd”文件,这是软盘镜像文件。嗯……这下就可以搞定了,把它抓到Virtual PC 虚拟软驱里,然后进入A盘,执行其中的一个批处理文件,就可以安装插件,使得虚拟DOS与宿主Windows共享文件夹了。

  步骤:

  一、安装好 Virtual PC 2004,然后在上面虚拟好MS DOS 7.1

 二、启动 MS DOS,然后把上述的那个“DOS Virtual Machine Additions.vfd”文件抓进虚拟软驱。

  三、在MS DOS下,输入命令:

  C:>A: 

  A:>dosadd

  现在需要的插件就安装好了。

  但是如果你在 安装DOS 7.1 使用了内存扩展UMB(EMM386),那么 按照书上P41上的提示运行 pmtest1.com 时会提示出错。具体原因我还不是太清楚,有待探究 ;-)

  解决方法: 注释掉 DOS中的C:\ config.sys中emm386,即 

REM DEVICE=c:\DOS71\EMM386.exe NOEMS 这一行。然后重启虚拟机即可。
【完】