如今互聯網普及後,全部的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)