我仍然对虚拟化的机制感到困惑。
我明白为什么x86架构本身不是虚拟化的,为什么其他架构(以及为什么68k架构除了MC68000本身等)。
然后我阅读了有关将虚拟化function添加到x86的英特尔VT-x和AMD V。
但是,虚拟CPU似乎是与物理CPU不同的CPU; 即物理CPU具有VT-x,而虚拟CPU不具有VT-x。
虽然这不是一个实际的问题(通常不需要在虚拟机中运行的操作系统需要VT-x),但这确实使我怀疑这是否构成真正的虚拟化。
80386已经可以虚拟化一个比80386本身更less的特性,即虚拟x86模式。 VT-x就是这样一个层(环-1,我想)还是真正的虚拟化?
(如果要虚拟化使用VT-x的系统,会发生什么情况?真正的虚拟化不应该允许无限制的虚拟化水平吗?)
对不起,一个愚蠢的问题。 或者说,对于理论而不是实际的问题抱歉。
更新:我做了这个graphics,试图更好地理解这一点:
http://www.netneurotic.net/bin/VMM.png
我明白为什么x86架构本身不是虚拟化的。
那根本不是真的。 它可以通过二进制翻译进行虚拟化,也可以称为完全虚拟化。 您可以使用位于操作系统之上的软件模拟传统计算机的每个组件。
然后我阅读了有关将虚拟化function添加到x86的英特尔VT-x和AMD V。
为了更加正确,它增加了额外的虚拟化function。 确切地说,它增加了处理器扩展,可以更快地处理虚拟化查询。 它还为64位处理器增加了一个-1环,因为AMD64环的数量减less到了2。
您可以使用“完全虚拟化”(Virtual PC,VirtualBox)或半虚拟化(Xen,Hyper-V)在x86上进行虚拟化。 英特尔VT / AMD-V允许您加速虚拟化并执行“硬件辅助虚拟化”。
我不知道你真正的虚拟化是什么意思……任何types的虚拟化都是真实的,它们使你能够在一台计算机上安装更多的操作系统。 这就是虚拟化的意义所在。
我希望这是明确的。 不要犹豫,如果你想要更多的信息评论。
编辑:如果你真的想知道更多关于这个,得到这本书 。 它教会了我一切。
你能解释一下Intel VT / AMD-V究竟如何加速虚拟化?
通过在CPU技术上实现VMWare等,他们使得pipe理程序的工作更容易。 人。 不得不在他们的二进制翻译软件。 有关这方面的更多细节,英特尔有一些不错的网页:
http://www.intel.com/technology/itj/2006/v10i3/1-hardware/6-vt-x-vt-i-solutions.htm
有几个地方使它更容易。 根据以上所述:
这三件事大大简化了编写pipe理程序的工作,为什么像KVM和Xen这样的开发者首先在VT处理器上只支持“完全”虚拟化。
VT-x和Pacifica加速虚拟化。 仿真加速是徒劳的。
VT-x实际上也给你一些更多的function。 由于EM64T / Intel64不支持VMware二进制转换所需的分段存储器,因此VMware ESX无法虚拟化没有VT-x的64位guest虚拟机。 AMD64支持除Opteron Rev C处理器之外的分割。 AMD意识到一个错误,并修复了它,而英特尔不select。