虚拟机

9
我一直在尝试弄清楚VMware的工作原理(特别是在Linux安装时),我有几个问题:
1. 当VMware遇到像push cs这样的命令会发生什么?具体来说,由于cs的特权级为0,而VMware在1特权级上运行,因此我认为它必须以某种方式将其转换为其他命令。
2. 虚拟内存:虚拟机如何工作?是否存在两个翻译级别 - 进程虚拟内存 -> 虚拟机物理内存 -> 真实机器物理内存?当真实机器交换页面时,VMware将如何被通知?

1
完全离题的问题。 - bmargulies
1
好问题。我对答案很感兴趣。 - alexyorke
@bmargulies那么它应该属于哪个网站呢? - Donal Fellows
Stack Overflow是这个问题的正确解决之地。 - old_timer
1个回答

1
  • 大多数指令直接在CPU上运行。但特权指令会引发异常,处理程序会模拟它们。
  • 现在我明白你在push cs示例中的意思了。你是指在不同特权级别下悄悄地表现出不同行为的指令。x86虚拟化的维基百科文章说它们是二进制翻译的,即在在主机CPU上运行代码之前有重新编译阶段。
  • 在旧的x86中,VMware维护影子页表。必须模拟客户页表,以允许VMware跟踪客户操作系统对页表的视图。新的x86具有虚拟化扩展,可以以有效的方式允许多个级别的页表。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接