web-dev-qa-db-ja.com

WindowsレジストリとUNIX / Linuxアプローチの違い

WindowsレジストリとUNIX/Linuxで使用されるアプローチの主な違いは何ですか?また、各アプローチの長所と短所は何ですか?

6
missingfaktor

UNIXには本当の同族語はありませんが、wollud1969が言うように、/etcが近づいています。しかし、それは話の一部にすぎません。また、/var(インストールされているソフトウェア、実行中のサービスなどに関する情報)、/usr/local/etc(少なくともFreeBSDおよび特定のLinuxディストリビューション)の下にあるものを考慮して、インストールされているサードパーティアプリの構成情報を確認する必要があります。 、そしてもちろん、各ユーザーのドットファイルは、ソフトウェアの動作をカスタマイズします(レジストリのHK_CURRENT_USERハイブとほぼ同等です)。次に、デバイスインターフェイス用の/dev、実行中のプロセスデータ用の/proc、およびカーネル自体(sysctlkernfs仮想ファイルシステムなど)があります。特定のプラットフォームによっては、他の場所も表示される場合があります。

この12年間のUNIXユーザーとしての私の観点から見たUNIXアプローチの主な利点は、アプリケーション構成ファイルは、どこに住んでいても、通常は単純な古いテキストファイルであるため、単純な古い人間が読み取りおよび編集できることです。 (おそらくsendmail設定ファイルを除いて、それは完全に異なる宗教戦争です...)。多くのアプリケーション(ブラウザー、デスクトップアプリなど)が構成ファイルを作成しますが、これらはテキストファイルであり、編集によって構文が壊れない限り、これらのファイルを手動で編集してもアプリは通常動作を停止しません。ただし、欠点は、ユニバーサル構成言語がないことです。そのため、管理する各アプリの構文を学習する必要があります。しかし実際には、これは最悪の場合、ほんの少しの煩わしさです。

Windowsレジストリは、少なくとも部分的には、Microsoftが問題と見なした同様の状況に対処するために開発されました。この状況では、アプリケーションのiniファイルが一元管理されておらず、どの値が入力されるかを厳密に制御できず、それらを置くソフトウェア。レジストリはこれらの懸念のいくつかを修正します(一元管理され、特定のデータ型を格納できます)が、その欠点はバイナリ形式であるため、経験豊富なWindows管理者でもGUIツールを使用して確認する必要があります。電源が切れると破損する傾向があり、すべてのソフトウェア作成者が、kewlシェアウェアアプリをアンインストールすることを決定したときに、自分でクリーンアップするのに十分な良心があるわけではありません。また、Windowsの他のほとんどすべてのファイルと同様に、レジストリのさまざまなコンポーネントがディスク上で断片化する可能性があり、その結果、読み取り操作と更新操作が非常に遅くなります。ソフトウェアがレジストリを利用する必要はなく、Microsoft独自の.NETプラットフォームでさえ、代わりにXMLファイルを使用します。

registry に関するウィキペディアのページは非常に有益です。

5
D_Bye

確かに直接比較することはできませんが、/ etcディレクトリをWindowsレジストリの対応物と考えることができます。

少なくとも私の観点からすると、/ etcディレクトリの主な利点の1つは、お気に入りのテキストエディタですべてのファイルを開いて、それを読んだり、理解したり、変更したり、修正したりできることです。

Windowsレジストリは、特定のバイナリ形式で保存され、レジストリエディタを使用して読み取り/書き込みを行います。レジストリエディタは、ファイルの内容を表示するだけでなく、ファイルを解釈します。さらに、すべてが1つの大きなファイルに含まれています。

8
wollud1969

なぜそんなに批判されるのか。私にとって、それはただ一つのポイントです:透明性。レジストリには何もありません。客観的に:

  • 微調整するとエラーが発生しやすくなります
  • 断片化する可能性があります
  • ソフトウェアを削除するときに、がらくたエントリが削除されないことがよくあります
  • キータイプが多すぎる(DWORD、QWORD、文字列、バイナリ、ユニコーンなど)
4
harp