![基于块级别的软件更新与基于文件的软件更新相比是否有优势](https://linux22.com/image/1553647/%E5%9F%BA%E4%BA%8E%E5%9D%97%E7%BA%A7%E5%88%AB%E7%9A%84%E8%BD%AF%E4%BB%B6%E6%9B%B4%E6%96%B0%E4%B8%8E%E5%9F%BA%E4%BA%8E%E6%96%87%E4%BB%B6%E7%9A%84%E8%BD%AF%E4%BB%B6%E6%9B%B4%E6%96%B0%E7%9B%B8%E6%AF%94%E6%98%AF%E5%90%A6%E6%9C%89%E4%BC%98%E5%8A%BF.png)
我看到有两种方法可以进行软件更新。常规 Linux 进行基于文件的更新,但 Android 转向基于块的更新。这样做有什么好处吗?
块级更新如何进行文件级定义的差异更新?
答案1
块级更新更容易控制,并且(从供应商的角度来看)更安全 - 尽管这种安全性的很大一部分来自于限制设备所有者对其系统的控制。其中一些来自于对映像进行签名并限制谁可以对映像进行签名以及防止运行未签名的映像。
另一方面,它极大地限制了软件的范围——图像和精确的硬件之间将会紧密联系。
在某些方面,GNU Linux 实际上与块级更新非常相似,通常依赖于“initrd”,这是一个压缩文件系统,然后由发行版进行处理 - 不同之处在于,此块是根据需要重新创建/重新打包的,并且它被设计为轻量级并在过程早期移交控制权。当然,在 GNU Linux 上保护启动过程非常困难 - 而发行版似乎没有做到这一点(而在 Android 上这是常态)