如今互联网普及后,全部的PC客户端软件基本上都是使用的在线升级。git
Chorme +Application +57.0.2987.110 +57.0.2987.88 chrome.exe
BsDiff: Linux中的一个开源工具,致力于快速和轻量的更新Linux的操做系统漏洞(跟微软的安全补丁相似),其算法的核心思想是基于统计学规律进行近似匹配,而后经过一系列的变化(好比BWT变换)提升“近似段”的压缩率。
Courgette: Google Chrome升级系统的核心模块,基于BsDiff,但对其进行了一系列的改进,将平台相关的信息(即x86汇编指令)融入其中,以指望更精确的定位指针,从而避免统计算法在差别明显时候的错误率。
server: diff = bsdiff(original, update) transmit diff client: receive diff update = bspatch(original, diff)
server: asm_old = disassemble(original) asm_new = disassemble(update) asm_new_adjusted = adjust(asm_new, asm_old) asm_diff = bsdiff(asm_old, asm_new_adjusted) transmit asm_diff client: receive asm_diff asm_old = disassemble(original) asm_new_adjusted = bspatch(asm_old, asm_diff) update = assemble(asm_new_adjusted)