LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: slackcode

kvm, xen, cpu支持

[复制链接]
 楼主| 发表于 2008-12-1 20:13:30 | 显示全部楼层
Post by lzlz;1917402
硬件虚拟需要硬件支持,我们知道对异常/中断发生时,CPU会跳转到特定的地址(对x86是对应的IDT)执行相应的处理例程,对只有一个OS这样是足够的,但如果有多个OS,这样无疑不能解决问题,于是也有两种解决方案:

第一种将修改guest OS底层代码,将以前跳转的处理例程地址重定位到一个特定(公共)的处理例程,根据当前运行的是那个虚拟机来判断到底跳转到具体那个guest OS的异常/中断处理例程。

第二种硬件可以通过增加少量的寄存器和指令,让硬件可以支持多个异常/中断处理例程入口。举个最简单(但未必正确)的例子: 我们增加一个寄存器REG_OS,默认它的值是0,如果有多个虚拟机(guest OS)在运行,则他们对应的REG_OS必须在切换的时候被依次设置为1,2,...,则当异常/中断发生时,辅助REG_OS寄存器,我们可以通过硬件就能重定向到对应的异常/中断处理例程。

某些特定操作如syscall可能还需要专门增加一些指令(hypercall)才能达到想要的效果

地一种即半虚拟(para-virt),第二中即为硬件虚拟(当然我的解释有很多遗漏的地方)。

很显然,第一种需要guest OS修改其底层的代码才能工作,第二种则不需要。

速度上二者实际上相差是很小的,个人感觉其实工作量是一样,有硬件来作未必就能带来太多速度上的优势。


很感谢,我喜欢这样的回答,这下子比较清楚地明白,啦
Thank you very much:-)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-1 20:14:56 | 显示全部楼层
Post by lzlz;1917404
Q8XXX一样不支持VT

Intel的貌似只有最高端的没有阉割,其他的多少阉割的某些功能,他的芯片组也一样有这样的问题
AMD的只要不是最底端的通常都没有被阉割


不是吧,我记得E8XXX系列大多都支持VT的,Q6600也支持,Q8XXX估计不支持,因为是低端45nm的四核,Q9XXX好像都支持
回复 支持 反对

使用道具 举报

发表于 2008-12-1 21:12:57 | 显示全部楼层
Post by lzlz;1917407
AMD AM2 Athlon好像就全支持SVM了,但Sempron不支持


是啊!athlon64的应该全都支持,我的4000+,正在用着kvm
回复 支持 反对

使用道具 举报

发表于 2008-12-1 21:19:00 | 显示全部楼层
Post by lzlz;1917404
Q8XXX一样不支持VT

Intel的貌似只有最高端的没有阉割,其他的多少阉割的某些功能,他的芯片组也一样有这样的问题
AMD的只要不是最底端的通常都没有被阉割

对于intel,准确的说,支持的都不常见,常见的都不支持。
回复 支持 反对

使用道具 举报

发表于 2008-12-1 21:30:49 | 显示全部楼层
想当年我这颗cpu可是第一颗家用64位的,也曾经高端过的,买来1080呢
回复 支持 反对

使用道具 举报

发表于 2008-12-1 22:32:34 | 显示全部楼层

其实新的处理器大部分都支持,不过这个功能有可能需要在bios中打开,对于台式机和笔记本

其实新的处理器大部分都支持,不过这个功能有可能需要在bios中打开,对于台式机和笔记本默认绝大部分都是关闭的。



这个本来是回复这个的。        
kvm, xen, cpu支持
请版主帮我移动一下吧或者删掉也行。回复的时候点错了按钮:(
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-1 22:56:19 | 显示全部楼层
Post by 三翻领;1917450
想当年我这颗cpu可是第一颗家用64位的,也曾经高端过的,买来1080呢


时间太快了~
回复 支持 反对

使用道具 举报

发表于 2008-12-1 23:04:04 | 显示全部楼层
Post by 三翻领;1917450
想当年我这颗cpu可是第一颗家用64位的,也曾经高端过的,买来1080呢

我的t8100目前也是千元以上呢
回复 支持 反对

使用道具 举报

发表于 2008-12-1 23:41:27 | 显示全部楼层
hoho 我的6320

flags                : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl [color="Red"]vmx est tm2 ssse3 cx16 xtpr lahf_lm

暂时没用kvm。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-2 08:50:59 | 显示全部楼层
Post by zxuan;1917530
hoho 我的6320

flags                : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl [color="Red"]vmx est tm2 ssse3 cx16 xtpr lahf_lm

暂时没用kvm。


是啊,E6300这个经典的U也是支持的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表