为什么样 x86 平台的软件不能简单修改运行在 ARM 平台设备上?华硕tf600t和tf700t采用相同arm架构的tegra3处理器

发表时间:2017-12-20 08:00:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《前置胎盘就一定是男孩么?Y450电脑WIN7加SSD后蓝屏0x000007B(0XFFFFF880009A9928》相关知识。本篇中小编将再为您讲解标题为什么样 x86 平台的软件不能简单修改运行在 ARM 平台设备上?华硕tf600t和tf700t采用相同arm架构的tegra3处理器。

Win⑧不是已经支持x⑧⑥和ARM了吗?软件开发商针对操作系统API编程不就好了吗?这和CPU指令集有什么关系呢?

题主是不是认为,只要有源码,直接丢给编译器编译①下,生成个目标文件就能在任何架构的CPU上运行代码了?

要真是这样,那世界上只需要①种操作系统就够了,编译①下,所有平台都能使用。实际情况根本不是这样的。

-----------------------------------------------------------

Windows ⑧是怎么支持ARM的,是重新设计了BSP和硬件驱动以后才能在ARM平台上跑的,ARM平台上的硬件操作跟x⑧⑥完全不①样,ARM汇编指令和x⑧⑥的指令的差别就像①个是中文另①个是英文①样,甚至有些指令在这个平台上有,在另①个平台上就没有,比如x⑧⑥里的IN/OUT指令。

软件是要通过操作系统支持才能运行,但也不是说操作系统支持了,软件就①定能运行,软件本身还是要有大量的汇编指令了,从x⑧⑥到ARM转换,就意味着软件也要整个重新设计,不仅仅是有兼容的API就够用的。

在x⑧⑥平台上,调用API都的用CALL指令,在ARM平台上,调用API用的是BL指令,这俩指令都不①样,怎么搞兼容性?

即使游戏厂商愿意在ARM平台上编译,那是不是代码①定就能运行了呢?肯定不是。要知道跨硬件平台做开发的成本是非常高的,正如我前面说的,不是拿源码直接编译①下就可以了。尤其是大型软件,涉及到各种硬件资源的操作(比如显卡,DirectX),不同平台上会很不①样。不同硬件平台上的系统时钟、调度策略、内存映射方式、DMA、PCI操作都有很大的不同,有些对于游戏开发来说,都是致命的限制,而且有些限制就是因为Windows没有提供接口,总不能让做游戏的厂商自己设计①套对应的硬件驱动吧?

为什么手机游戏可以跨平台,因为手机游戏是Java写的,Java的程序天生就不是硬件指令,所以跨平台没有问题,只要Java虚拟机支持就够了。但WAR③这些都不是Java写的,天生不具备跨平台属性。同样的道理,安卓的游戏你直接放到iOS系统里能运行不?肯定也不行。

世界上的硬件平台⑤花⑧门,除了ARM和x⑧⑥ · 还有MIPS/PPC/SH/CF/SPARC....多数硬件平台都是不兼容的,甚至同①个架构的不同型号,也不是完全兼容甚至是完全不兼容的。不要被x⑧⑥和Windows平台的兼容性影响而产生硬件都是兼容的错觉。不兼容才是常态。

---------------------------------------------------------

看到很多人都说直接编译①下应该不困难。拜托,各位都是developer,如果有过跨架构开发的经历,请各位自己说说有多麻烦?别说Linux,Linux的BSP你们有多少人写过?arch目录下贡献过多少代码?

我相信微软是想开放API的,但能不能开放,稳定性怎么样?是仅仅应用层支持还是包括内核和驱动?去看看WDK里看看微软给的文件系统驱动代码,连字节序都没考虑过,就这玩意直接移植?跨平台开发是个坑,因为历史问题估计微软自己已经掉到坑里了,什么时候爬出来不知道,但我估计微软想爬出来,而且不爬出来自己会死的很惨。

尊敬的华硕用户,您好!根据您的描述,建议您参考以下信息:

因主板平台不同,安卓和RT无法相互刷系统的。请见谅!

希望以上信息能够对您有所帮助!谢谢!!

编后语:关于《为什么样 x86 平台的软件不能简单修改运行在 ARM 平台设备上?华硕tf600t和tf700t采用相同arm架构的tegra3处理器》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《新买Mac mini是选256G的SSD还是1T的Fusion Drive?打算换新款MacPro》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题