***************************************************************************
*        フリーソフト使いこなしマガジン tool inside        *
*         Volume020 発行日:2004年5月19日(水)          *
*            ==用語解説:レジストリ==           *
***************************************************************************

Windowsでソフトウェアを使う際には(きっと)避けて通れないレジストリ。
何かと賛否両論の多いレジストリですが、このレジストリのことを知っていると、
フリーソフトを使う上で便利なので、
軽く解説しておきましょう。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
目次
・レジストリとは何をするためのもの?
・レジストリのメリット
・レジストリのデメリット
・フリーソフトにおけるレジストリの位置付け
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


★★★ レジストリとは何をするためのもの? ★★★
レジストリ(Registry)とは、個々のアプリケーションの設定データを格納するため
の領域です。
例えば、メールクライアントならば、アカウント情報や各種画面設定(使用する
フォントや画面のデザイン等々)がレジストリという情報域に保存されることが
多いです。
また、アプリケーションだけでなく、OS関係の設定もレジストリに保存されています。
例えば、ウィンドウのデザイン情報や、アプリケーションの関連付け情報、DLLの
あり場所等々、かなりOSの根幹部分に関わる設定も保存されています。


★★★ レジストリのメリット ★★★
レジストリは、OS本体の設定も含まれた、いわばWindowsの根幹部分に関係している
ので、ユーザが自由に変更できるというのは一種危険と言えば危険です。
その反面、Windows設定の自由度が格段に向上したという側面もあります。
レジストリが導入されていなかったWindows3.1は、多くの部分がユーザーからは変更
しようのない、OS内部の仕様として非公開となっていました。
ところが、レジストリが導入されて以来、GUIの見た目や細かい挙動を、ユーザが
かなり自由に変更できるようになりました。
Windows3.1時代にもそれらの設定を保存するための仕組みとしてINIファイルという
ものがあり、WIN.INIというファイルを変更することである程度のカスタマイズはでき
たのですが、INIファイルは単なるテキストファイルですので、情報が多くなると目的
の情報を探し出すのに非常に時間がかかり、システム全体のパフォーマンス低下を
招きかねない状態になってしまいます。

これらをツリー状に管理し、大量の情報を高速に検索する仕組みとして、レジストリ
という一種のデータベースが導入されたというわけです。


★★★ レジストリのデメリット ★★★
確かに、「大量の設定情報を管理する」という用途ではINIファイルに比べて
レジストリは優れています。
ですが、「アプリケーションごとの設定情報を管理する」という用途では、レジストリ
は必ずしも優れているわけではありません。
アプリケーションごとの設定情報の量はアプリケーションによってかなり差があります
が、それにしても、OS本体のそれに比べれば微々たるものです。わざわざレジストリに
保存するのは大袈裟過ぎるケースもあります。
また、アプリケーションとは別の場所に設定情報が格納されることによる弊害もありま
す。

(1)アプリケーションの移行が面倒になる
  アプリケーションを他のパソコンに引越す場合、アプリケーションをそのまま
  コピーしても、レジストリはコピーされないので、設定情報が消えてしまいま
  す。
  regeditで該当するレジストリ情報を探し出し、エクスポートすることで設定
  情報も移行ができる場合もありますが、できたとしても非常に手間がかかり
  ます。
  一方、INIファイル方式だとINIファイルも一緒にコピーするだけで設定情報も
  含めてまったく同じ状態が再現しますので、非常にラクチンです。

(2)レジストリの肥大化がシステム全体のパフォーマンス低下に繋がる
  INIファイルに比べて、格納される情報が多くなることによる検索性の低下の
  度合いは低いとは言え、情報が少ないことに越したことはありません。
  レジストリが肥大化して検索に時間がかかるようになると、Windowsそのものの
  動作が遅くなってしまう恐れがあります。

(3)見通しが悪い
  レジストリへの登録は、人知れず行われるものなので、一体何が登録されたの
  かが非常に分かりにくいです。
  ましてや、バイナリ形式で登録されたりすると、ほとんどお手上げ状態。
  また、これらのレジストリの登録情報はアンインストールしても完全に消えると
  は限らないのでタチが悪いです。
  INIファイルですと、ファイルの中身は全てテキスト形式ですので、中身をテキ
  ストエディタで覗いてみれば、だいたい推測はつきます。

(4)他のアプリケーションへの影響
  あるアプリケーションがレジストリを書き込んだことによる、他のアプリケー
  ションへの影響も深刻です。
  アプリケーションが勝手にファイルの関連づけを変えてしまうなんていうのは
  よくあることです。


★★★ フリーソフトにおけるレジストリの位置付け ★★★
フリーソフトにおいては、もともと小規模なアプリケーションが多いこともあってか、
レジストリを避けINIファイルを使う傾向があります。
Microsoft側の姿勢としてはINIファイル方式を廃止し、レジストリ方式に移行すること
を推奨していますし、INIファイルの仕組みを将来のWindowsで動作保証しているわけで
はないのですが、敢えてINIファイルを使っているのは上述のような事情があるからで
す。
筆者もこれには賛成です。
どんなソフトでも、使い込めば使い込むほど、自分の好みの設定というのが固まって
くるものです。これは試行錯誤を繰り返して行き着いた一つの「資産」です。
当然、この「資産」は他のパソコンでも使いたいのが人情です。
アプリケーションは再インストールすれば同じものが再現できますが、設定ばかりは
一度消えてしまったらまたイチからやり直しです。
これらの情報がレジストリという、別の環境へ流用しにくい(最悪の場合流用でき
ない)かたちで格納されているのは、あまり好ましい状態とは言えませんからね。


レジストリについてもうちょっとつっこんだ話はいつか機会があったらお送りしたい
と思います。
とりあえず今回はここまで。