Linux and windows have very different ways of storing their installed program settings. Before windows 95 came along they used to be very similar. With Linux all program settings are stored in individual configuration files. These are often well commented files which can be changed to modify the default behaviour of programs. Pre-windows 95 these type of files were called *ini files and served the same purpose. Current versions of windows use what is called a registry database which is a single file where all program settings are centrally stored. There are advantages and disadvantages to these two methods. I will discuss each one. First of all I will ramble on about the windows method.
With the windows registry absolutely everything is, as I said, stored in a single file. Well not exactly true. Personal settings are stored in another file under that persons home directory and system settings are stored in another file. However, to all intents and purposes they are treated as a single file. This means that to find any setting for any program you only have one place to look. Just open up regedit and scan away.
If you wish to find personal setting you can look under the current user tree (HKCU) and for global settings you can look under the local machine tree (HKLM). If you have more than one user they are stored under, sensibly enough, the users tree (HKU). All of the file classes, what program opens up what type of file, are stored under the classes tree (HKCR) and finally the computers current dynamic configuration settings are under (duh!) the current configuratio tree (HKCC).
This all seems quite simple and straight forward. Unfortunately, the registry has a tendency to become very messy and a single program installation makes multiple entries all over the place. Quite often the removal of those programs do not adequately clean up the registry entries and program re-installations create duplicate entries. This can make diagnosing and cleaning up program problems extremely difficult. Having a large and messy registry significantly slows windows down due to it having to traverse the registry all the time. It also helps to chew up your computers ram as well. This registry method is rather fragile and vulnarable to file system damage where a well placed bad block on your hard disk will render your complete operating system to an inoperating system.
The Linux method of storing program settings at first looks to be messy and inefficient to those who are used to the "windows way" of doing things. As I said all programs who need a saved configuration store their configuration in a simple text file. This text file can be opened up and edited with any text editor and there are many graphical configuration tools to provide a nice easy to understand method of editing them.
These files are normally stored under a single directory in your Linux system. This "/etc" directory is the official place for these files to handle global system wide settings. Individual user settings are stored in the users home directory. There are a couple of other "/etc" directories and they usually reside under "/usr/local" and "/user/share" for reasons beyond the scope of this article (Hmmm, mental note for future article). As each program has it's own individual settings file, which are generated automatically if needed, it is easy to find where all settings related to that program are.
If the program is having setting related problems it is a simple matter to just delete it's related configuration file and the program is instantly back to default settings. Program removal is simpler as well because just a single file needs to be deleted or in the case of re-installation the same file is re-used with no duplicates created. Having a large number of installed programs does not slow the computer down at all because the configuration file is only read when the program is started. This also does not needlessly tie up computer memory. When the program is closed that memory is freed. Even though this is a very simple and easy to understand method it is also very robust. A bad block in your file system will not bring your computer to it's knees. At most just that program will be affected.
So there you have it. A general overview of the difference between Linux and windows settings. Personally I prefer the Linux way of doing things. This is not based on an emotional, religious fan boyz decision but on a purely technical preference. With the Linux method any average computer user can use and understand the configuration files. With the windows registry the average computer user will not be able to make heads or tails out of it.
What do you think? Which system of storing computer settings is best for you? Why?
- Locutus's blog
- Add new comment
- 827 reads

It would be nice with a
It would be nice with a combination of both, the best from each brought to Linux. A system wide (desktop environment independent) API for persisting application settings. One standardised way of doing it. It would make it easier for the application developers (no need for inventing the wheel and abstraction from how settings is stored, could be as individual files in /etc, ~/., etc. or something else if that would prove to be a better solution). Easier for system administrators (standards are great and it would make it easy to create frontends and enterprise tools and solutions). One open standard for application settings and a system wide API would be great and make Linux an even better operating system (I know there is the option of using LDAP but it's not really what I am aiming for even though LDAP could be one of many optional backends behind such an API but it could also be a file based backend much like the configuration files of today, but with a standardized format, syntax, organization etc.).