アカウント名:
パスワード:
レジストリそのものが時代遅れ、というかMicrosoftの最悪の発明の一つ
http://www.atmarkit.co.jp/ait/articles/1501/22/news143.html [atmarkit.co.jp]
テキストファイルを使ったシステムの設定管理方法は、大規模化するマルチユーザー/マルチタスクのシステムには全く対応できない。ユーザーごとに設定を分離/管理する機能もないし、設定値を安全に書き換えることすらも不可能だからだ。
レジストリは、機能的には単なる設定値をまとめて保存しておくファイルのように見えるかもしれない。だが実際には、レジストリは「構成マネージャー(configuration manager)」という、Windows OSの基幹となるカーネルコンポーネント(NTエグゼクティブ)と一体になって動作する、動的な構成情報の管理機能の1つである。ほとんどのレジストリエントリは静的な構造や値を持っているが、動的な値を持つエントリもあるし、ユーザーや環境ごとに自動的にレジストリのセット(ツリー)を切り替えたり、障害発生時には以前の値に戻したりする機能も持っている。またWindows OSの設計思想に従って、アクセス制御(アクセス権のないユーザーやプロセスなどからのアクセスを拒否する)や監査機能も備えているし、値変更の通知機能(特定のレジストリの内容が変更されたことをプロセスに通知する機能)なども持っている。
レジストリは単なる設定ファイルではない、という所は無視?
要するに、事実上ファイル単位でロックするしかないCSVファイルと、レコードロックできるオブジェクトDBであるレジストリとどっちがいいのって話になる。Linuxアプリでも、起動時のConfigファイルはテキストでも、起動時に設定変更を監視しているだけで、稼働中に使用する設定管理とか状態管理は別途オンメモリDBとか、bdbとかで管理しているものもある。テキストの方が再構築が楽なのがいいけれど、アクセス速度が問題になる場合や動的更新が多い場合にはバイナリで管理するしかないからね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds
時代遅れ (スコア:-1)
レジストリそのものが時代遅れ、というかMicrosoftの最悪の発明の一つ
Re:時代遅れ (スコア:2, 参考になる)
http://www.atmarkit.co.jp/ait/articles/1501/22/news143.html [atmarkit.co.jp]
Re: (スコア:0)
昔はテキスト(XML)、今はバイナリだけど、それは単にパースの時間を短縮するためだし。
内部的には情報をかき集めてメモリ上かディスク上にキャッシュしてるっぽいけど、
あくまで主となるのは個別の設定ファイル。
もちろんユーザごとに設定を分離してるし管理してるし、安全に書き換えも可能だ。
(システム固有)、環境全体、ユーザ個別それぞれに設定ファイルを置ける。
Re:時代遅れ (スコア:1)
昔は、ini ファイルとかテキストファイルベースだったのを、高速化とアクセス制御のためにバイナリ化したものです。
今でも、テキストベースのini ファイルもレジストリ操作のAPI で操作できます。
レジストリのファイルの実態は、ユーザーやシステムとかそれぞれ別れてます。
API 経由でそれぞれの所在を知らずに、構造化された状態で参照できるだけですよ。
Re: (スコア:0)
レジストリは単なる設定ファイルではない、という所は無視?
Re: (スコア:0)
要するに、事実上ファイル単位でロックするしかないCSVファイルと、レコードロックできるオブジェクトDBであるレジストリとどっちがいいのって話になる。
Linuxアプリでも、起動時のConfigファイルはテキストでも、起動時に設定変更を監視しているだけで、稼働中に使用する設定管理とか状態管理は別途オンメモリDBとか、bdbとかで管理しているものもある。テキストの方が再構築が楽なのがいいけれど、アクセス速度が問題になる場合や動的更新が多い場合にはバイナリで管理するしかないからね。