加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 综合聚焦 > 移动互联 > 数码 > 正文

苹果全面放弃32位应用 Android该跟风吗?

发布时间:2017-02-06 16:58:30 所属栏目:数码 来源:驱动之家
导读:64位移动处理器在2013年首次亮相,而苹果iOS系统则是首个支持64位计算的移动操作系统。有意思的是,从最近的消息了解,苹果将有可能在iOS 11正式放弃对32位应用程序的支持,正式完成对64位生态系统的完全过渡。其实这是iOS 10.3测试版一个错误信息无意间爆

64位移动处理器在2013年首次亮相,而苹果iOS系统则是首个支持64位计算的移动操作系统。有意思的是,从最近的消息了解,苹果将有可能在iOS 11正式放弃对32位应用程序的支持,正式完成对64位生态系统的完全过渡。其实这是iOS 10.3测试版一个错误信息无意间爆的料,当用户尝试运行32位应用程序,系统竟然告诉用户无法在未来版本中运行,开发者需改进适配,正是这点让人浮想联翩。

在iOS平台上,苹果已经不止一次提供类似的暗示了,并非常希望开发者仅提供64位应用程序。例如说,去年年底的时候,苹果从App Store移除了一定数量应用程序,理由是不兼容,并向开发者发送电子邮件,提醒他们应用程序开发必须以64位为基础。

通常来说,我们不太会在意系统或手机是32位还是64位,毕竟新设备总是能够同时兼容32位和64位应用程序。但是,考虑到苹果总是能对谷歌移动生态系统产生一定的影响,就有必要来讨论一下,为何苹果要做出这样的举动,而Android是否应该效仿。

苹果全面放弃32位应用 Android该跟风吗?

32位和64位

首先要简单的了解一下32位和64位的背景。32位和64位一般是指CPU的通用寄存器位宽,相对于32位而言,64位的CPU位宽增加一倍,使其能够处理更多更精确的数据,因此有一定加快数据处理的作用,特别是负载的情况下。再通俗来讲,32位和 64 位就是四车道和八车道的区别,在拥堵的晚高峰,八车道速度显然更快。

当然了,64位可寻址范围大大扩展,32位系统最大支持内存为4G。另外,32位系统和64位系统需要安装支持相应软件模式下的操作系统和驱动软件,也就是32位只能安装 32 位,64位安装64位的软件,但可兼容32位运算。

回到ARM处理器的话题上。ARM从32位ARMv7-A到32位/64位ARMv8-A的转变过程中,引入了大量的新指令以便增强功能,也就是AArch64指令集。但为了保证ARMv8能够向后兼容,ARM在架构设计上仍保留了现有的AArch32和Thumb-32指令集。虽然这就意味着CPU核心管线部分需要进行更多设计,占用更多极其有限的芯片空间,但确保了这些传统指令也能够与新硬件一起工作。

需要注意的是,单个应用程序使用过长中,完全不可能同时使用ARMv7和ARMv8两种执行状态,因为AArch64与AArch32和Thumb-32指令集之间没有任何交互操作。因此,直接以AArch64指令集和ARMv8处理器为基础编写的应用程序,无法在ARMv7 Cortex-A系列处理器上运行。

不过,以 ARMv7 Cortex-A 处理器为基础编写的应用程序,仍可以在ARMv8处理器上运行,毕竟可通过保留的AArch32和Thumb-32执行状态运行。

其实说白了,如果苹果真那么做的话,像iPhone 5这款以ARMv7处理器为基础的机子,将无法升级到iOS 11操作系统。

苹果全面放弃32位应用 Android该跟风吗?

苹果为何执意转向64位

苹果放弃对32位应用程序的支持表明,未来将完全拥抱 AArch64执行状态,其硬件处理器和软件iOS系统,还有应用程序的设计,所有都将只适用于 AArch64 指令集功能。好处自然不少,包括更大的寻址范围支持更大的内存,简化汇编程序,双精度浮点及更先进的SIMD运算,以及高达3至10倍的加速硬件加密性能等。

不过,开发者和开发商将无法再使用AArch32和Thumb-32指令集,因为必须更新应用程序。当然了,除了迫使开发人员利用全新64位架构的最新特性之外,这也十分有利于苹果更出色的完成下一代CPU的设计工作。苹果有出色的芯片设计团队,而且一直在规划放弃对旧架构的支持,完全可以借此尽可能多地释放芯片空间,降低制造成本,或者将释放的空间加以利用,加强CPU、GPU及其余部分,或引入更加先进的一些功能。

我们不清楚苹果如何设计下一代芯片,或许会是为64位进一步优化 CPU,而不一定是全部转为64位,保留部分传统硬件所需的32位指令,不会强行破坏与ARM签署的许可协议。因为ARM通常要求基于其授权架构的CPU设计,务必支持全部指令集,若遵守这一规定的话,苹果的芯片同样需要保留对AArch32和Thumb-32的支持,如此一来才能通过ARM的一致性测试。不过,ARM自己提倡灵活性设计,例如Cortex-A32就是基于32位版本的ARMv8架构设计,没有十分明确哪些指令集是强制性要求,这就相当于留给苹果更多的发挥空间。

苹果全面放弃32位应用 Android该跟风吗?

那么,Android阵营应该跟风?

有利有弊,而且也并非完全不可行,若是基于上述相同的原因,只要谷歌和智能手机芯片开发商(如高通和联发科)联手,软件和硬件上共同合作也能实现。但不可否认的是,Android 生态圈比苹果大很多,分布有大量不同的硬件配置,若立即执行同样的转变相信很难迅速组织起来,甚至在此过程中可能被迫中断。

尽管如此,理论上谷歌也可以从软件方面做类似的事情,强制要求所有Google Play商店的应用程序转移到64位版本。不过,这同样需要一个长期的过渡时间,虽然今天入门级的智能手机和平板电脑都已经装备了64位处理器,但是依然依赖于大量的 32 位应用程序,而且真正完美兼容 64 位指令集的并不是很多,一旦放弃向后兼容后果不堪设想。

讲真的,Android 生态圈完全迁移到64位不太靠谱。例如说,许多Android车载娱乐系统仍基于ARMv7处理器打造。再看智能手表,包括华为、索尼和LG的手表,均搭载了32位的ARM Cortex-A7处理器设计。

另外,谷歌最近公布的Android Things物联网平台,其开发板的芯片也并没有兼容64位的应用程序。那Android阵营没办法全面过渡到单一的64位计算了?并非如此,只是可以预见,未来Android依然提供32位的支持,这是最两全其美的解决方案。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读