日期:2014-05-17  浏览次数:20795 次

vmware 虚拟CPU 底层编程问题
如果我在虚拟机中的驱动程序中改变了APIC某个中断号的中断向量,是否会影响真实CPU的特性?也就是我想知道vmware是虚拟化了一个CPU(重新设置指令系统字节码等东西)还是直接调用真实的CPU。

------解决方案--------------------
vmware应是采用多层抽象的技术

简单理解,和操作系统一样,windows的所有操作都由ring 3的用户层提交到ring 0的内核层,最后由ntoskrnl.exe和hal.dll调用对应的*.sys驱动来完成

vmware也可以直接抽象自己的内核来供给虚拟机来使用,其实就是众多的驱动和服务,只不过虚拟机抽象的内核是建立在主机操作系统已有的基础上的,这就是多层抽象的意思

因此,虚拟机中的硬件都是抽象的,虚拟机中的任何操作都是先提交给vmware抽象的内核,再由该内核翻译给主机操作系统来操作

虚拟机无法直接使用主机所有的硬件,道理正是如此

当然,由于vmware的核心实际对应于主机的一些文件或内存,在处理虚拟机内部提交的某些操作时可能由于内核的漏洞存在溢出的可能,因此,网上也只说有穿透的可能,但似乎还没有发现,因此,vmware也有补丁

以上仅个人理解,因此,楼主的答案就是:

1.修改虚拟机中驱动驱序,不会影响到外面主机真实的cpu,最多不过是内部虚拟机蓝屏,要不网上很多人用虚拟机来调试内核或是测试病毒不是很危险

2.vmware是虚拟化的cpu,虚拟机内的指令会先传给vmware内核,由vmware翻译给主机再执行,不是直接调用
------解决方案--------------------
不会,我在上面实验病毒把虚拟系统完全弄死了,物理系统都没事
------解决方案--------------------
虚拟机里不会影响本机的,放心使用。记得vmware是虚拟化了一套指令系统。