虚拟机

Shm*_*opy 9 virtualization vmware virtual-memory

我一直试图弄清楚VMware是如何工作的(特别是安装Linux时),我有几个问题:

  1. VMware遇到类似命令时会发生什么push cs?特别是cs,因为它的权限级别为0,VMware运行在1个权限级别,所以我假设它不得不将其转换为其他命令.

  2. 虚拟内存:它如何在虚拟机上运行?有2级翻译 - 进程虚拟内存 - >虚拟机物理内存 - >真机物理内存?当真实机器交换页面时,如何通知VMware?

nin*_*alj 1

  • 大多数指令直接在 CPU 上运行。但是特权指令会导致异常,处理程序会模拟它们。
  • 现在我明白你的例子的意思了push cs。您的意思是指令在不同的权限级别上默默地表现不同。x86 虚拟化的维基百科文章说它们是二进制翻译的,即在主机 CPU 上运行代码之前有一个重新编译阶段。
  • 在较旧的 x86 中,vmware 维护影子页表。必须模拟来宾页表,以允许 vmware 跟踪来宾操作系统具有的页表视图。较新的 x86 具有虚拟化扩展,可以有效地支持多个级别的页表。