罗云彬VxD教程--虚拟设备驱动程序初步

http://tech.ddvip.com   2006年03月31日    社区交流

本文详细介绍罗云彬VxD教程--虚拟设备驱动程序初步

  什么是一个虚拟机?一个虚拟机是被软件创建的一个假象。一个虚拟机和在它上面运行的程序交互,就像这个程序是在真正的机器上运行一样。这样,一个程序不知道也不关心自己是否是在虚拟机上运行。只要虚拟机准确的像一个真的机器一样响应程序,我们就可以把它当成一个真正的机器。

  你可以把虚拟机这种实机器和软件之间的接口看作一种API。这种不寻常的API由中断,BIOS调用和I/O端口组成。如果Windows能够以某种方法完美的模拟这个API,那么在虚拟机上运行的程序就会表现的和它们在实际器上运行时完全一样。

  这就是为什么会出现VMM和VxD的原因。为了协调和监视虚拟机(VMs),Windows需要一个程序来分配任务。这个程序就是虚拟机管理器(VMM)。

虚拟机管理器

VMM是一个32位的保护模式程序。它的主要任务是建立和维护一个支持虚拟机的框架。例如,它要创建,运行和结束一个虚拟机。VMM是众多的系统VxD程序之一,它被放在你的系统目录下的VMM32.VxD文件中。VMM本身是一个VxD程序,但它被当作一个监视其他VxD程序的监视器。让我们来看一下Windows95的启动次序:
  1. 加载io.sys。
  2. 执行config.sys和autoexec.bat。
  3. 调用win.com。
  4. win.com运行VMM32.VxD,VMM32.VxD实际上是个简单的dos的exe文件。
  5. VMM32.VxD用xms驱动程序把VMM加载到扩展内存。
  6. VMM初始化自身及其它的默认VxD。
  7. VMM把机器转入到保护模式并创建系统虚拟机。
  8. 最后被加载的虚拟外壳设备在系统虚拟机上通过运行krnl386.exe来启动Windows。
  9. krnl386.exe加载所有的文件,最后是Windows95外壳。
正如你所看到的,VMM是第一个被加载到内存的VxD程序。它创建系统虚拟机并初始化其他的VxD程序。它也为这些VxD程序提供许多服务。

责编:豆豆技术应用

正在加载评论...