::Search Result::

Monday, August 11, 2008

The Registry vs. Text Files

I think of the Windows Registry as the ultimate configuration database—thousands upon
thousands of entries, very few of which are completely documented, some located on servers
and some located on clients. While it is possible to edit Registry entries manually, the fact that
one does so using a graphical tool doesn’t make the process intuitive.

Consider this Windows .NET Server Registry setting: In HKEY_LOCAL_MACHINE\
SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters, set EnablePrefetcher to 0x00000003 to enable application and boot prefetching. Even assuming you know what prefetching is and want to enable it, that’s a daunting configuration change, and not one that I remember offhand.

If you’re not getting my message, I’m saying that the Windows Registry system is, at best,
very difficult to manage. Although it’s a good idea in theory, I’ve never emerged without
injury from a battle with the Registry.

Linux does not have a registry. This is both a blessing and a curse. The blessing is that
configuration files are most often kept as a series of text files (think of the Windows .INI files
before the days of the Registry). This setup means you’re able to edit configuration files using
the text editor of your choice rather than tools like regedit. In many cases, it also means you
can liberally comment those configuration files so that six months from now you won’t forget
why you set something up in a particular way. With most tools that come with Linux,
configuration files exist in the /etc directory or one of its subdirectories.

The curse of a no-registry arrangement is that there is no standard way of writing
configuration files. Each application or server can have its own format. Many applications are
now coming bundled with GUI-based configuration tools, so you can do a basic setup easily
and then manually edit the configuration file when you need to do more complex adjustments.
In reality, having text files to hold configuration information usually turns out to be an
efficient method. Once set, they rarely need to be changed; even so, they are straight text files
and thus easy to view when needed. Even more helpful is that it’s easy to write scripts to read
the same configuration files and modify their behavior accordingly. This is especially true
when automating server maintenance operations, an ability that is crucial in a large site with
many servers.

Because Linux configuration files are text files, configuring systems automatically can
be done quickly and easily without special tools. Simple scripts can be written to set the
configuration values, making deployment of a new operating system, software package, or
utility very easy. Windows requires third-party software (often licensed on a per-machine
basis, which can become very expensive for large projects) to perform similar feats.

No comments:

::Adsense::