ninesunqian 发表于 2009-08-20 08:53

能不能以x86指令为源码,“编译”成mips指令

gcc编译器先把c或c++ 编译成平台无关的中间指令,然后再把中间指令变成x86或mips或arm指令。

能否把x86指令,反编译成中间指令,再变成mips指令。

这个方案可行吗

prolj 发表于 2009-08-20 09:04

可行,二进制翻译。

cjaizss 发表于 2009-08-20 09:21

原理上自然可以,虚拟机就是这样的.但翻译为别的汇编码呈现在你的面前的程序,这个我还不知道有没有现成的

ninesunqian 发表于 2009-08-20 09:55

动态二进制翻译后的执行效率损失大吗? 这个是关键。

ninesunqian 发表于 2009-08-20 10:16

如果二进制翻译能够消除CPU架构差异带来的性能损失,加上wine
那龙芯的linux, 是否能够跑x86上的windows程序

vxasm 发表于 2009-08-20 10:27

原帖由 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就完全可以做到。

ninesunqian 发表于 2009-08-20 10:31

QEMU的效率怎么样。
比如一个不依赖其他库的纯计算的程序,在x86平台与mips平台上用qemu模拟的,性能差多少。

vxasm 发表于 2009-08-20 12:38

如果是把QEMU运行在x86平台与运行在Mips平台相比,那就和各自的CPU性能有关了。

如果你的意思是说,把这个纯计算程序运行在QEMU中,与运行在真实机中相比,QEMU的性能大概相当于真实机的40%,加上KVM模块的话,能达到70-80%。

Cyberman.Wu 发表于 2009-08-20 13:03

回复 #8 vxasm 的帖子

不知道你说的是指什么,例如在x86上通过QEMU再跑一个x86版本的Linux,和跑一个PowerPC的Linux效率上不同吧?对于同构的情况虚拟机能做许多优化,但对于跨体系结构,则多数会慢许多。

ninesunqian 发表于 2009-08-20 13:17

qemu确实很强,用了动态二进制翻译。target支持的架构很多, host就不支持mips, 不过相信不久就可以了。
http://www.qemu.org/status.html

kvm 是不是只能仿真x86指令?
有空研究一下,有点意思。

[ 本帖最后由 ninesunqian 于 2009-8-20 16:53 编辑 ]
页: [1] 2
查看完整版本: 能不能以x86指令为源码,“编译”成mips指令