对于虚拟化的机制,我仍然感到困惑。
我理解为什么x86体系结构本身是/不是虚拟化的,以及为什么其他体系结构是虚拟化的(以及为什么68k体系结构除了MC68000本身之外等等)。
然后我读到了英特尔VT和AMD,它们为x86增加了虚拟化能力。
但是,虚拟化CPU似乎是与物理CPU不同的CPU;即物理CPU具有VT,而虚拟CPU没有。
虽然这不是一个实际的问题(一个人通常想要在VM中运行的操作系统都不需要VT),但这确实让我怀疑这是否构成真正的虚拟化。
80386已经有能力虚拟化一个CPU,它的功能比80386本身的虚拟x86模式要少。VT只是另一个类似的层(我想是环-1 )还是真正的虚拟化?
(如果一个人想要虚拟化使用VT的系统,会发生什么?真正的虚拟化不应该允许无限程度的虚拟化吗?)
很抱歉有个愚蠢的问题。或者说,为一个理论问题而不是实际问题感到抱歉。
更新:我做这张图是为了更好地理解这一切:
http://www.netneurotic.net/bin/VMM.png
发布于 2009-06-23 14:51:42
我理解为什么x86体系结构本身是/不能虚拟化的。
这完全不是事实。它可以通过二进制翻译或更常见的称为完全虚拟化的方式进行虚拟化。您可以模仿传统计算机的每一个组件,并在操作系统上安装一段软件。
然后我读到了英特尔VT和AMD,它们为x86增加了虚拟化能力。
更正确的是,它增加了额外的虚拟化功能。准确地说,它增加了处理器扩展,允许更快地处理虚拟化查询。它还为64位处理器增加了一个-1环,因为AMD64的环数减少到了2。
您可以使用“完全虚拟化”(Virtual,VirtualBox)或准虚拟化(Xen,Hyper)在x86上进行虚拟化。英特尔VT/AMD-V允许你加速虚拟化和做“硬件辅助虚拟化”。
我不知道你所说的真正的虚拟化是什么意思.任何类型的虚拟化都是真实的,它们使您能够在一台计算机上拥有一个以上的操作系统。这就是虚拟化的意义所在。
我希望这是清楚的。如果你想要更多的信息,请不要犹豫。
编辑:如果你真的想了解更多关于这方面的信息,请获取这本书。它教会了我一切。
发布于 2009-06-23 15:24:13
VT和Pacifica加速了虚拟化。模拟加速是徒劳的练习。
VT实际上也为您提供了更多的功能。VMware ESX无法在没有VT的情况下虚拟化64位来宾,因为EM64T/Intel64 64不支持分段内存,这对于VMware的二进制翻译是必要的。除了Opteron处理器之外,AMD64确实支持分段。AMD意识到了一个错误,并修正了它,而英特尔选择不这样做。
https://serverfault.com/questions/30317
复制相似问题