找回密码
 立即注册
搜索
楼主: SUPERFIGHT

[软件] 微软好样的~    WIN8 for ARM的所有软件需重编译~

[复制链接]
     
发表于 2011-5-19 15:13 | 显示全部楼层
我个人觉得,追求“一次编译到处执行”,也许有意义,但是付出的比得到多太多,得不偿失
回复

使用道具 举报

发表于 2011-5-19 15:36 | 显示全部楼层
引用第38楼SUPERFIGHT于2011-05-19 15:07发表的  :


JAVA理论上就是这样的~  JAVA写的都是中间代码~  具体由虚拟机翻译成机器码~

但是不知道为啥最后根据平台还是要很多的编译测试~ =.= 感觉根本没把一次编译~ 到处执行的特性发挥出来~  
不理解各个平台的特性的话,跨平台就是个笑话
好比Java的String转byte[],我估计大部分Java程序员不知道这东西不光在Windows下和Linux下的表现不一样,不同区的系统间表现也不一样……
回复

使用道具 举报

     
发表于 2011-5-19 16:10 | 显示全部楼层
回归主题。我觉得搞一个在运行时把x86转arm 的东西微软不是做不出来,是有专利问题

或者是因为intel 的关系特意为之
回复

使用道具 举报

     
发表于 2011-5-19 16:13 | 显示全部楼层
不同构架的二进制码的运行时翻译... 就算真有可能被虚拟出来了效率也是
回复

使用道具 举报

     
发表于 2011-5-19 16:17 | 显示全部楼层
引用第42楼精钢魔像于2011-05-19 16:10发表的  :
回归主题。我觉得搞一个在运行时把x86转arm 的东西微软不是做不出来,是有专利问题

或者是因为intel 的关系特意为之

肯定不会搞对已有代码/程序的兼容啊。。。这个太蛋疼了
最多就是在便于移植上做些设计,就足够了
回复

使用道具 举报

发表于 2011-5-19 16:24 | 显示全部楼层
引用第42楼精钢魔像于2011-05-19 16:10发表的  :
回归主题。我觉得搞一个在运行时把x86转arm 的东西微软不是做不出来,是有专利问题

或者是因为intel 的关系特意为之

还真做不出来

x86 x64的使用已经达到了一种“滥”的境界,很多软件代码都用了内联汇编,动态指令生成,这类东西要想在运行时完全翻译到arm,没听说过哪家有此等技术。

另外举一个最简单的例子,花指令,这个在risc上就没有等价物
回复

使用道具 举报

     
发表于 2011-5-19 16:26 | 显示全部楼层
现在都不是逐字节翻译了好不好,字节码的程序在第一次运行时编译为本地代码,并作为一个映像保存,以后再运行就是直接执行这个映像,不用二次编译
回复

使用道具 举报

发表于 2011-5-19 16:29 | 显示全部楼层
引用第46楼精钢魔像于2011-05-19 16:26发表的  :
现在都不是逐字节翻译了好不好,字节码的程序在第一次运行时编译为本地代码,并作为一个映像保存,以后再运行就是直接执行这个映像,不用二次编译

你这叫 IL,也就是中间语言,java byte code    vb pcode  .net IL等等,那些原生的程序怎么办?dynarec是一种方法,但是wine做到今天也不敢保证随便拿一个都能兼容
回复

使用道具 举报

     
发表于 2011-5-19 16:31 | 显示全部楼层
引用第45楼鉴胸真人于2011-05-19 16:24发表的  :


还真做不出来

x86 x64的使用已经达到了一种“滥”的境界,很多软件代码都用了内联汇编,动态指令生成,这类东西要想在运行时完全翻译到arm,没听说过哪家有此等技术。
.......

做不到一条指令对一条指令,那一对多也可以啊

不过好像听说过,x86的指令在运行时会被转译成另外一套东西,不是80386汇编


引用第47楼鉴胸真人于2011-05-19 16:29发表的  :


你这叫 IL,也就是中间语言,java byte code    vb pcode  .net IL等等,那些原生的程序怎么办?dynarec是一种方法,但是wine做到今天也不敢保证随便拿一个都能兼容

把另一个平台的本地代码看作中间语言不行吗,思维不要那么僵化么
回复

使用道具 举报

发表于 2011-5-19 16:39 | 显示全部楼层
引用第48楼精钢魔像于2011-05-19 16:31发表的  :


把另一个平台的本地代码看作中间语言不行吗,思维不要那么僵化么

对于self modify code 是dynarec领域中的老大难问题

另外确实如你所说,可以一条一条翻译解释执行,cpu里面确实也这么搞,但是不要忘了cpu里面是硬件执行,软件解释执行会有20~~200倍的性能损失
回复

使用道具 举报

     
发表于 2011-5-19 17:04 | 显示全部楼层
而且不仅只是代码的翻译,举例说,翻译以后指令数目变动了,内存地址要重新映射,不同架构的CPU对内存对齐的要求不一样,数据要做相应的调整等等,要解决的问题太多了
回复

使用道具 举报

头像被屏蔽
发表于 2011-5-19 17:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
     
发表于 2011-5-19 17:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2011-5-19 17:28 | 显示全部楼层
猫少呢,即时编译,你们说的是NDS模拟器吧
回复

使用道具 举报

发表于 2011-5-19 17:28 | 显示全部楼层
引用第52楼half_angel于2011-05-19 17:20发表的  :
微软还是先把编译器搞出来再说

微软自家至少有Alpha  MIPS ARM POWER X86 X64的编译器,你说还需要搞哪种?
回复

使用道具 举报

发表于 2011-5-19 18:08 | 显示全部楼层
引用第53楼532于2011-05-19 17:28发表的  :
猫少呢,即时编译,你们说的是NDS模拟器吧
JIT Recompiler是近现代模拟器标配
引用第51楼masterfish于2011-05-19 17:08发表的  :
现在真的“跨平台”不是flash、html5和javascript吗?
这仨货色第一个跨毛平台,先上了iOS再说;后两个跨平台了是不假,可惜不跨浏览器
引用第54楼鉴胸真人于2011-05-19 17:28发表的  :


微软自家至少有Alpha  MIPS ARM POWER X86 X64的编译器,你说还需要搞哪种?
你忘数IA64了
MS的编译器不说顶尖,算在第一梯队是没问题的
回复

使用道具 举报

发表于 2011-5-19 18:10 | 显示全部楼层
arm就arm
htpc上最多用用
难道还指望黄老板 丹佛计划么 100倍这牛皮
outel 干掉他 囧
回复

使用道具 举报

     
发表于 2011-5-19 18:11 | 显示全部楼层
其实我想说的是 Xbox 360 (PowerPC) 模拟 Xbox (x86) 完全可行…绝对是黑科技…
回复

使用道具 举报

     
发表于 2011-5-19 20:40 | 显示全部楼层
只知道就目前来说
.net compact framework和.net framework算是部分兼容的
写个简单的C#程序做到同时能在arm9的ce和x86的win7上运行是可以做到的(hello world什么的.........
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-9-16 16:18 , Processed in 0.315560 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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