iPhone 5s,是苹果史上最有意义的机型之一。不只是因为它首发了 Touch ID 和 iOS 7,更重要的在于那颗 A7 处理器,让其成为全球首款 64 位架构的手机。
此后,Android 手机阵营也开始使用 64 位架构的芯片,并逐渐成为行业主流。
在 64 位架构处理器的背后,有个老大哥叫 ARM,为手机厂商提供相关技术支持。资料显示,全球有超过 95% 的智能手机和平板电脑,都在使用 ARM 架构。
就在最近,老大哥 ARM 宣布了一件大事:从 2023 年开始,所有使用其架构的手机,CPU 内核将强制采用 64 位,且没有 32 位兼容模式。
简单来说,32 位要被智能手机和平板电脑通盘抛弃了,64 位的时代全面到来。
在智能手机里,你的每一张照片、每一个文件,甚至每一次操作,对于处理器来说,都是一串数字。
处理器以二进制的形式来储存这些数字,为它们分配的空间,以「位」为最小的单位。在二进制中,一个「位」有 0 和 1 两种状态。
▲ 图片来自:servicenowthink
这是一个不太容易说得通俗易懂的话题。我们先来打个不那么精准的比方好了。
假设你是一台计算终端,32 位的 CPU,就相当于你有 32 只手(寄存器),每只手上有 32 根手指(寄存器可以保存的数字)。而 64 位的 CPU,则相当于你有 64 只手,且每只手上有 64 只手指。
哪种情况下算数算的多,就不言而喻了。64 位比 32 位有着翻天覆地的增进。
▲图片来自:worldtechpedia
在处理器的世界中,32 位的架构可以访问 2 的 32 次方个内存地址,即 4GB 的 RAM 或物理内存。而 64 位的架构,可以访问 2 的 64 次方个内存地址,理论上支持 16TB 的内存。
如果计算终端拥有 8GB 的 RAM,但却配备了 32 位的处理器,那么意味着约有 4GB 的 RAM 处于无法访问状态,白白浪费了。
随着软件生态的发展,4GB RAM 已经无法满足某些大型软件的需求。因此处理器和系统都纷纷朝着 64 位进发。
▲ 图片来自:gearnews
上文说到了,市场上绝大部分的智能手机、平板电脑都在使用 ARM 架构的处理器。我们常说的 ARM 架构,多是指 ARM 指令集的架构,它是一个处理器结构中最重要的部分。
比如高通骁龙 888 使用了一个 Cortex-X1、三个 Cortex-A78 内核和四个 Cortex-A55 内核。这些内核,都采用了 ARMv8 系指令集架构。
ARM 是什么时候拥抱 64 位的呢?时钟可拨回至 2011 年冬季。
彼时,ARM 发布了第 8 版指令集架构 ARMv8,首次引入了 64 位指令集。不过,它并非只支持 64 位系统或应用,还能向后兼容以前的 32 位架构。
▲ARMv8 相比前代的特性. 图片来自:ARM
从 Cortex-53 到 Cortex-A75 的大多数 Cortex-A 处理器,都支持 32 位和 64 位两种模式。因此对于消费者来说,并没有什么特别的感受,32 位和 64 位的应用程序都可以正常使用。
直到前段时间,第 9 版指令集架构 ARMv9 发布,带来了三款基于新架构的 CPU:ARM Cortex-X2、Cortex-A710 和 Cortex-A510。
▲ 三款新 CPU. 图片来自:ARM
这 3 个 CPU 里,ARM Cortex-X2、Cortex-A510 仅支持 64 位操作系统及应用程序,不再向后兼容。只有 Cortex-A710 还保留着对 32 位应用程序的支持。
ARM 公司随后又宣布,从 2023 年起,其所有内核将都将停止对 32 位操作系统和应用程序的支持。
这意味着什么呢?Cortex-A710 很可能是其最后一颗支持 32 位应用程序的 CPU,32 位要彻底和移动终端说再见了。
▲图片来自:infoworld
在 Windows 电脑上,我们从网页端下载软件时,常常有 32 位和 64 位的选项。一般来说,32 位的系统就安装 32 位的软件,64 位的系统则安装 64 位的软件。
出于平台兼容性考虑,64 位的系统也可以安装 32 位的软件。而一些开发者为了减少工作量,只提供了 32 位的软件。
▲ 图片来自:MJ Tube
对于「小而美」的软件来说,的确 32 位也无伤大雅,毕竟不需要太多的内存。但对于体积大,调用资源多的应用程序来说,64 位才是更理想的选择。
不过 64 位应用程序运行的前提,是 64 位的系统。我们知道,Windows 很早以前就提供 64 位的版本了。游戏机更早,甚至可以追溯到 1996 年的 N64。
▲你玩过 N64 吗? 图片来自:bitlounger
那么 Android、iOS 这些系统,是什么时候转向 64 位的呢?
先来看 Android。2014 年,Android 5.0 (Lollipop) 发布,是第一个完全兼容 64 位的 Android 版本。
而 2013 年秋季 iPhone 5s 发布后,iOS 开始在软硬件方面均支持 64 位。macOS 稍早一些,2011 年的 10.7 Lion 版本,就已经进入 64 位的时代了。
为了让消费者在全面转入 64 位时代时,不受明显影响,各系统从前几年就开始对软件生态谋划布局了。
比如 Android 此前宣布,自 2019 年 8 月起,所有 Google Play 里的应用都需要支持 64 位。从 2021 年 8 月 1 日起,64 位设备上的 Google Play,将不再提供 32 位版本的应用。
我们熟悉的微信,在 2019 年 11 月底,正式公开了 64 位版本的下载链接。它和淘宝也成为第一批拥抱 64 位的国产 Android 应用。
▲ Android 推进 64 位的进程表
今年 4 月份,小米应用商店、OPPO 软件商店、vivo 应用商店、腾讯应用宝、百度手机助手也纷纷宣布,今后登陆应用商店的应用,必须有序支持 64 位 ARM 架构。
按照要求,今年年底前,全体应用和游戏,都需要按计划上传含有 64 位构建的 APK。2022 年 8 月底前,中国市场所有的移动 Android 程序,必须全面普及 64 位。
▲ 图片来自:xicom
苹果对待 64 位的态度,比 Android 要更为强硬。
早在 2015 年 2 月,苹果就宣布所有 iOS 应用程序都必须支持 64 位。2017 年,苹果宣布 iOS 11 将不再支持 32 位应用程序。
▲ iOS 11 无法运行 32 位的老应用. 图片来自:Qooah
这意味着 iOS 从此完全放弃了 32 位,A11 及更新的处理器,都仅支持 64 位的应用程序。
苹果对 macOS 的要求一样严格。2018 年开始,所有提交至 Mac 应用商店的应用程序,都需要支持 64 位。
2019 年发布的 macOS 10.15 Catalina,更是完全放弃了对 32 位应用程序的支持。
▲macOS 10.15 Catalina 无法运行 32 位的老应用. 图片来自:pcmag
所以对于消费者来说,ARM 在 2023 年这个节点完全抛弃 32 位兼容,并不会有什么明显的感受。因为各系统的软件生态,已向 64 位有序过渡了多年。
我们未曾听闻过渡进程中,有什么重大问题出现。这个时间表,更多的是给开发者上了一根弦。
看着 Android、iOS、macOS 等系统,在 64 位的道路上渐行渐远,Windows 心里是羡慕的。
相比移动系统,Windows 有着太多的历史包袱。
即便其在很早以前,微软就推出了 64 位的 Windows。如今的新电脑,RAM 也普遍在 4GB 以上,预装的都是 64 位的系统。但问题是,其软件生态跟不上硬件的脚步。
▲Windows 11 甚至还支持远古时期的 Office 7.0 图片来自:知乎答主 XylonJack
这并非开发者不愿意做,而是 64 位 Windows 的普及率有些一言难尽。一些企业级用户甚至还在使用 16 位的软件,只能安装 32 位的操作系统,以向下兼容 16 位。
另外,调试测试工具、第三方辅助外挂插件、程序员的个人能力等因素,都是 Windows 朝着 64 位全面进化的绊脚石。
所以,Windows 什么时候会在 64 位的世界里,与 Android、iOS、macOS 等系统相遇?没人能知道。或许,微软自己也不知道。