原则上Windows兼容任何PC格式的电脑,允许任何软件运行,用户在一开始便拥有整个电脑的控制权。实际上,今天的Windows(windows7/8/8.1)可以做到,把硬盘拔下来接到另一台电脑依然能立马跑起来并配置好正确的驱动程序。
在这种情况下微软无法预测硬盘里有什么东西,所以
安装更新包的内容至winSXS—>更改对应硬链接到新版本的文件—->重启
是最合适的。
而手机是一个更加专一内容,特别是其中的私有驱动程序,都是针对某个硬件型号而特别设计(如移植)的,这使得手机的操作系统实例缺乏可移植性。
Nexus4与Nexus5的rom可以由同一份AOSP源代码,配合对应设备的私有驱动二进制文件编译而成,但已经编译好的rom无法通用。
在绝大多数时候,手机中用于存放系统文件的区域是固定不变的,它压根就不会出现更改(bootloader锁定),于是
通过新旧文件的差分信息直接把旧文件改成新文件
是可行的,而且省流量。所以OTA都做这个事情。
root后的手机往往没法OTA便在这里,root过程中的加入的su binary/app以及软链接改动了/system的内容,而这可能干扰到了差分机制。su binary本身并没有问题
当然OTA格式的更新包也可以完全不采用差分的模式,那些.zip形式的刷机包便是这类OTA包
还有一种手段是直接写入盘上分区的镜像,它对软件的要求最少,只要有bootloader就能做(在Android上便是fastboot)。如RUU、Nexus设备的Factory Image都是这种做法。
— 完 —
本文作者:知乎用户(登录查看详情)
【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)
此问题还有 3 个回答,查看全部。
延伸阅读:
Android 有没有可能会发展成桌面操作系统并与 Windows 竞争?
如果 Windows 也像 Android 一样开源,会发生什么?