fixedpoint.jp - Chromium の差分更新について




Chromium の差分更新について

正誤情報を差分として扱う Errata をより便利にすることに関連して、興味深い記事を見つけました: Software Updates: Courgette (The Chromium Projects)

これは Google Chromium の設計に関する文書の1つです。

デスクトップアプリケーションとして避けて通れないのがソフトウェアの更新です。特にセキュリティに関する更新を速やかかつ確実に届けるために、Chromium は差分圧縮アルゴリズムを利用していることが説明されています。わざわざ新しいアルゴリズムを用意しており、バイナリファイルの差分のためのツール bsdiff と比較しても相当なパフォーマンスの向上があるとのことです。

肝心なのは

というアイディアです。

詳細はソースコードから見てとることができます:

http://src.chromium.org/viewvc/chrome/trunk/src/courgette/ensemble.h
struct CourgettePatchFile のコメントにパッチファイルの概要が書かれている。
http://src.chromium.org/viewvc/chrome/trunk/src/courgette/assembly_program.h
AssemblyProgram はディスアセンブルされたバイナリプログラムを表す。
http://src.chromium.org/viewvc/chrome/trunk/src/courgette/encoded_program.h
EncodedProgram はシリアライズ/デシリアライズされて元のバイナリプログラムに戻せる。
http://src.chromium.org/viewvc/chrome/trunk/src/courgette/courgette_tool.cc
courgette というコマンドを提供している。

参考


© 2006-2010 Takeshi Abe