能不能以x86指令为源码,“编译”成mips指令
gcc编译器先把c或c++ 编译成平台无关的中间指令,然后再把中间指令变成x86或mips或arm指令。能否把x86指令,反编译成中间指令,再变成mips指令。
这个方案可行吗 可行,二进制翻译。 原理上自然可以,虚拟机就是这样的.但翻译为别的汇编码呈现在你的面前的程序,这个我还不知道有没有现成的 动态二进制翻译后的执行效率损失大吗? 这个是关键。 如果二进制翻译能够消除CPU架构差异带来的性能损失,加上wine
那龙芯的linux, 是否能够跑x86上的windows程序 原帖由 ninesunqian 于 2009-8-20 10:16 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
如果二进制翻译能够消除CPU架构差异带来的性能损失,加上wine
那龙芯的linux, 是否能够跑x86上的windows程序
在龙芯+Linux上跑Windows,和SPARC+Linux上跑Windows,原理上都是一样的,用QEMU就完全可以做到。 QEMU的效率怎么样。
比如一个不依赖其他库的纯计算的程序,在x86平台与mips平台上用qemu模拟的,性能差多少。 如果是把QEMU运行在x86平台与运行在Mips平台相比,那就和各自的CPU性能有关了。
如果你的意思是说,把这个纯计算程序运行在QEMU中,与运行在真实机中相比,QEMU的性能大概相当于真实机的40%,加上KVM模块的话,能达到70-80%。
回复 #8 vxasm 的帖子
不知道你说的是指什么,例如在x86上通过QEMU再跑一个x86版本的Linux,和跑一个PowerPC的Linux效率上不同吧?对于同构的情况虚拟机能做许多优化,但对于跨体系结构,则多数会慢许多。 qemu确实很强,用了动态二进制翻译。target支持的架构很多, host就不支持mips, 不过相信不久就可以了。http://www.qemu.org/status.html
kvm 是不是只能仿真x86指令?
有空研究一下,有点意思。
[ 本帖最后由 ninesunqian 于 2009-8-20 16:53 编辑 ]
页:
[1]
2