パッチ

パッチ: patch)とは、コンピュータにおいてプログラムの一部分を更新してバグ修正や機能変更を行うためのデータのこと。「修正プログラム」や「アップデート(プログラム)」などとも呼ばれる。実際に変更を施す際は「パッチを当てる」、「パッチを適用する」と言う。同名のUNIXコマンドpatchのことも指す。ゲームのグラフィックや様々なデータを改造するプログラムやファイルを後から追加するパッチはModと呼ばれる。

概要

コンピュータネットワークがまだ低速だった時代、プログラムの一部を変更するために全体を再度ダウンロードすることは非常に効率が悪かった。そこで、部分的な変更を施すために必要な部分のみを差分データとして抽出し配布するパッチ形式が慣習となった。プログラム全体をダウンロードすれば何時間も要するが、必要部分だけであれば数分程度でダウンロードを完了することができる。これは前述のとおりネットワークがまだまだ低速であったことのほか、常時接続環境がまだ普及しておらず、ダウンロード時間が長時間に及ぶことで回線使用料がかさむのを避けるという面においても有用であった。なお、差分の抽出やそれを使用してのプログラム更新には専用のソフトウェアを必要とする。また、手動で更新を行う際には元のプログラムのバージョンを確認し、専用のパッチを適用しなければ不具合を生じる場合がある。

今日においては、ネットワークのブロードバンド化や常時接続環境の普及に伴い、数十メガバイト単位のコンパイル済みアプリケーションであっても更新時にはその都度全体を再度ダウンロードする形態が多く見られる。しかし、商用ソフトやOSのバグ修正、オープンソースのソフトウェアで変更点をポストする際には依然としてパッチが利用される。また、主に UNIX コミュニティで、個々の環境に合わせてソースコードを調整するような場合もパッチ形式が一般的である。これは、常時接続環境が普及した現在においても、サーバの転送量を軽減し、全体としてのダウンロード時間を軽減する目的には変わりない。

バイナリ

バイナリファイルのパッチは、オンラインゲームのバージョンアップ、オンラインソフトウェアの日本語化などで広く使われている。

バイナリファイルのパッチには、テキストファイルとは別のアルゴリズムで作ることにより、より効率化する。bsdiff[1]の作者によると、bsdiff の作成するパッチは xdelta[2] よりも 50 % - 80 % 小さく、RTPatch[3]よりも 15 % 小さい。

語源

初期のコンピュータでプログラムが紙テープに記録されていた時代にプログラムを修正する時に穴をパッチ(あて布)で塞いでいたことに由来する[4]

右の写真はハーバード大学自然史博物館に展示されている1940年代に使われていたHarvard Mark I用の紙テープで、写真上部の水色で260と書かれた数字の上下の穴を灰色のパッチで塞いだ上で別の穴を開けている様子が分かる。

脚注

出典

関連項目

🔥 Top keywords: メインページ宮崎麗果特別:検索豊後水道松本忠久土居志央梨若葉竜也能登半島地震 (2024年)田中雄士長谷部誠井上道義The GazettE若林志穂服部百音黒木啓司REITA虎に翼平井理央出口夏希サーブ (盲導犬)三鷹事件セウォル号沈没事故白眞勲三淵嘉子高橋克也 (オウム真理教)ME:Iルーシー・ブラックマン事件佐藤ありさ杉咲花蜜谷浩弥水野真紀亀井亜紀子 (政治家)熊本地震 (2016年)水原一平井川意高中川安奈 (アナウンサー)内藤剛志いなば食品YOSHIKI