GeodSoft logo   GeodSoft

Linux, OpenBSD, Windows Server Comparison: Windows Directory Structure Adversely Affects Reliability

Compared to the registry, the poor Windows directory structure, has smaller but not insignificant reliability consequences. Any competent system administrator knows that system programs should be separated from application programs, data should be separated from programs, and user and application data should be separate from each other.

Though some UNIX directory names may seem odd, short and cryptic by today's long filename conventions, a look at any BSD directory structure will show these kinds of separations implemented. The program distinction is more between system installed and locally installed programs. System programs go in /bin, /sbin, /usr/bin and /usr/sbin. The bin directories are general purpose or user oriented while the sbin directories are more administrative. The /usr directories are less frequently used than their counterparts without /usr. Typically the /bin and /sbin directories have the essential programs likely to be needed in "single user mode" and these directories are normally part of the root ("/") filesystem that is first mounted.

Local programs normally go in /usr/local/bin or /usr/local/sbin at the choice of the administrator. An apps or other subdirectory could be added to /usr/local, if the administrator desired, for application programs as opposed to utilities. Significant applications often get their own subdirectory in /usr/local/ or /opt. /etc holds system configuration files and user specific configuration and data files go in the user's "home" directory under /home. /var holds variable system data, typically logs and queues. It's generally left up to the application or installer where to put application data. Other UNIXs may be somewhat less clean and simple but generally use a similar approach.

On Windows systems, except for "C:\Program Files" which is the default location for programs and their data that don't go into the system directory, everything else is, by default dumped into the system directory, "C:\WINNT" . WINNT looks like all the UNIX directories were mixed together and pseudo randomly poured into different locations in WINNT. Some older programs go directly in WINNT. The "real" system directory is system32 under WINNT. It may have thousands of system utilities and shared program files (which would be in a lib or share subdirectory on a UNIX system) as well as a variety of configuration files. The registry goes in config under system32. By default the IIS directory goes into system32.

The real gems are Profiles, and Web which go under WINNT and logfiles, repair, and spool which go under WINNT32. Profiles has all the individual user interface configuration options, i.e., everything for the desktop, program menu and task bar as well as browser cookies, history, and favorites or in other words, the most volatile and personal configuration data. Web is loaded with graphics related to "channels". Logfiles and spool are what you'd think, highly variable system data, and repair is a backup of the registry which is also a subdirectory of system32.

The jumble represented by the Windows directory structure does not have a large impact directly on reliability but it has a big impact on the ability to understand a system and even more so to recover a system after a failure. The Windows registry is a larger obstacle in this regards, but even if there were no registry, the Windows directory structure creates such a mixture of standard system utilities, system specific configuration files, hardware specific components, and user specific components that it is almost impossible to devise any system recovery strategy that allows one Windows install and configuration to be moved to a different hardware system.

In contrast, the hardware specific components of UNIX systems are few, isolated, and typically documented. With some planing, it is not difficult to develop backup and recovery procedures that allow a specific configuration to be reinstalled on virtually any hardware system of the same platform, requiring only adequate disk space be available.

System Recovery

For any Linux or OpenBSD machine I have that might fail, I should be able to perform a basic operating system install of the correct version on any available Intel compatible hardware, restore my latest full system backup over the standard install and follow with the most recent differential backup to have a system that is functionally identical to the replaced system. The basic install should take about 15 to 20 minutes.

The rest will depend on how much needs to be restored and the speed of the media. More or less standard Linux or OpenBSD re-installs, even with many optional components, should not take much over an hour unless the system to be restored has large amounts of application or user data. Such a process cannot be reliably performed on Windows systems unless essentially identical hardware is available, as documented at considerable length in my web page, The Stupidity of Windows NT Installs, Backups and System Recovery.

If you have good backups, then restoring a corrupted software, Windows NT system can be acceptably quick, depending in part on what service pack level the restore software requires: the amount of time it takes to do a basic system install, install the backup software and then perform a restore. (Of course UNIX systems don't' have a registry to corrupt in the first place, so actually restoring a system to fix a UNIX software failure is almost unheard of; you simply identify and fix the program that is causing the problem.) The restore time will depend on tape drive size, speed and capacity and thus could be minutes or hours. If you have a preinstalled alternate NT system to boot to, then you don't need to do an install. The alternate system would be a minimal OS install with necessary hardware drivers and the same backup software, installed to the same location, as the production system uses. Nothing else, even basic networking, not needed by the backup software needs to be included. You will need to know the administrator password on the alternate system, which suggests keeping it synchronized with the live system.

If you have a hardware failure on an NT server, you better have an identical replacement available. If the restore is to an alternate machine, everything down to slot locations and jumper settings needs to be identical. If NT can detect any differences between the hardware it's running on and the matching settings in the registry, there is simply no predicting whether NT will run on the substitute hardware or what steps may be necessary to get it to run. It may, but don't count on it. If it doesn't, you may be forced to reinstall and reconfigure every software component that was on the failed machine. In my long web page, The Stupidity of Windows NT Installs, Backups and System Recovery, towards the end, I suggest some strategies for mitigating problems, when you are forced to re- install an NT system on non identical hardware.

Hopefully this is any area where Windows 2000 has made significant improvements. Hardware compatibility was one of NT's weak areas. It's my understanding that 98 made significant improvements over 95. If 2000 can detect changed hardware and automatically adapt or lead a user through the necessary installation, it would be a huge improvement. I'd be interested in hearing any firsthand stories from readers, either good or bad on this.

transparent spacer

Top of Page - Site Map

Copyright © 2000 - 2014 by George Shaffer. This material may be distributed only subject to the terms and conditions set forth in (or These terms are subject to change. Distribution is subject to the current terms, or at the choice of the distributor, those in an earlier, digitally signed electronic copy of (or cgi-bin/ from the time of the distribution. Distribution of substantively modified versions of GeodSoft content is prohibited without the explicit written permission of George Shaffer. Distribution of the work or derivatives of the work, in whole or in part, for commercial purposes is prohibited unless prior written permission is obtained from George Shaffer. Distribution in accordance with these terms, for unrestricted and uncompensated public access, non profit, or internal company use is allowed.


What's New
Email address

Copyright © 2000-2014, George Shaffer. Terms and Conditions of Use.