飞腾cpu吧 关注:14贴子:138
  • 2回复贴,共1

飞腾、龙芯、兆芯都能运行x86的windows程序,它们有什么区别

只看楼主收藏回复

在linux下运行windows程序,最常用的方法是使用wine。
wine是在x86架构linux下模拟windows系统的程序,它没有指令翻译的功能,不能在不是x86架构的CPU直接运行。
飞腾和龙芯都不是x86架构,就需要使用一些二进制翻译工具把x86的指令翻译成本机指令来运行。
通过二进制翻译程序,把x86架构的wine运行起来,就可以再用wine运行windows程序了。
一、
几种CPU运行wine的技术方案:
飞腾:主要用qemu-user、box86/64、exagear等运行x86的linux程序。
龙芯:主要用latx,也可以用qemu-user运行x86的linux程序。
兆芯:本身是x86架构的CPU,核心由VIA旗下的半人马设计,可以直接运行x86的linux程序。
二、
几种二进制翻译方案的特点:
a、
qemu-user:纯软件翻译,运行效率非常低。对于翻译的目标软件,目标软件自身的二进制代码、目标软件调用的库文件的代码都需要翻译。对常见的各种应用程序,翻译运行的平均效率是5%左右,一般是开发是用来验证软件跨架构运行的正确性,对普通用户没有实用价值。
b、
box86/64:纯软件翻译,但对目标软件调用的系统api可以转向到对系统中原生库的调用,也就是说对于主要依靠系统api来完成功能软件,可以只翻译软件自身代码,api不用翻译,而是使用系统的。运行效率5%~50%左右,对于一些几乎依靠自身代码完成功能的软件来说,翻译运行的效率只比qemu-user高一点点。翻译运行一些游戏和简单的桌面软件没问题,可是运行像图像处理软件这类程序时就没有实用价值。
c、
exagear:闭源软件,对它的特性不清楚。也是纯软件翻译,可能用box86/64差不多。
d、
latx:龙芯自创的二进制翻译技术方案,是软件和硬件指令结合的一种翻译技术。就是CPU中为二进制翻译增加了一些特殊指令和一些专门的硬件设计,理论上效率要比任何的纯软件翻译都高。只是现在还不够成熟,翻译运行的平均效率只有50%左右,但是运行PhotoShop这种纯粹靠自身代码计算图像效果的软件时,速度要比box86/64等纯软件的方案快得多。


1楼2022-02-27 02:43回复
    好文


    IP属地:江苏来自Android客户端2楼2022-03-01 15:14
    回复


      IP属地:美国来自Android客户端3楼2022-03-01 23:11
      回复