「ウイルスが流行っているからOSにパッチを当てておいて!」などと,ベテランの管理者に指示されたことはありませんか。「パッチを当てる」とは,OSのバグを修正することというのは,知っている人が多いでしょう。WindowsユーザーならWindowsUpdateウインドウズ・アップデートによって目的は達せられます。では,実際のパッチ当て作業とは,どうなっているのでしょうか。

穴をふさぐ継ぎあてを当てる

 プログラムのバグを修正したり,機能を追加・変更するには,プログラム・ファイルを書き換える必要があります。といっても,プログラム・ファイル全体を書き換えることはほとんどなく,問題がある部分だけを書き換えたり,わずかに追加するケースがほとんどです。

 こうしたプログラム・ファイルの修正個所や追加部分がパッチに相当します。パッチの語源は「着物の継ぎあて」や「ばんそうこう」という意味の英語です。はぎれを縫い合わせた布をパッチワークと呼びますよね。あのパッチです。ここから転じて,パッチは書き換えたプログラムの一部分(差分)を指すようになりました。パッチを当てるとは,穴の空いた(バグがある)プログラムにあて布(パッチ)を当てて,穴(バグ)をふさぐということです。

 従来は,プログラム・ファイルの一部分をパッチと呼び,特別なプログラム(ツール)を使って,バグが残っているプログラム・ファイルを書き換えていました。ツールを使って,古いプログラムのバグ部分だけにパッチを当てていたのです。

 このようなしくみにしておけば,大きなプログラム・ファイルを修正するときも,修正個所だけのパッチと小さなツールを入手するだけで済みます。つまり,比較的小さなデータをダウンロードして,大きなプログラム・ファイルを修正でき,大きなプログラム・ファイル自体をダウンロードするよりも効率的なのです。

今はプログラム・ファイル自体を置き換える

 しかし,通信回線の速度が上がった今では,ダウンロードするデータの大きさをあまり気にする必要がなくなりました。しかも,最近のOSやアプリケーションは,1個の大きなプログラム・ファイルでできているのではなく,小さなプログラム・ファイルが無数に集まって全体としてOSなどの機能を提供するようになっています。Windowsを例にすると,単機能を提供するDLL(dynamic link library)と呼ばれるプログラム・ファイルが無数にあり,それらのプログラムが連携し合って動いています。これらのファイルは小さいものなら数十Kバイト,大きいものでも数Mバイト程度です。

 こうした形式なので,OSやアプリケーションのバグを修正するためにプログラム・ファイル自体を入れ替えても,ダウンロードに長い時間がかかることはありません。実際,Windowsにパッチを当ててくれるWindows Updateは,問題があるプログラム・ファイルを新しいものに入れ替える作業が主体になっています。

 プログラムの入れ替えは厳密な意味で,パッチを当てる作業とは違いますので,マイクロソフトはプログラムを修正するデータのことをパッチと呼ばず,「修正プログラム」と呼んでいます。

 以上の事実を踏まえると,「パッチを当てる」という言い回しは,今では厳密な作業内容と一致しないことの方が多いと言えるでしょう。「パッチを当てることで,プログラムのバグを修正する」という意味合いだけで残っている考えるべきです。