Open Source Software vs. Commercial Software:
Migration from Windows to Linux
An IT Professional's Testimonial


Maintenance Headache of Windows

Trouble Troubleshooting

Typical Windows event log Typical Linux log
Typical logs for Windows (left) and Linux (right).

One of the most frustrating things that I come across regularly with Windows is the lack of good system logs. Logs are essential for troubleshooting or monitoring a system. Take for instance the Windows Event Viewer, the tool to view the main logs of Windows which consists of the Application (application messages), Security (Windows security messages, mostly used for domains -- it's empty on typical home computers), and System logs (messages for Windows components). But are those the only logs available? Pretty much. Other Windows services can have logs enabled, but the process to doing this is different for each service and the logging can get very cryptic. I'm not saying that all logs in Linux are for easy reading, but it's usually pretty easy to browse through them since they are ALL created in plain text and tell what is actually going on. In Linux, we have

Linux log directory
Typical /var/log directory in Linux

the following separate log files, all saved in the /var/log directory, saved in plain text:

There are also additional log files for other services like the apache web server, samba, and other services (see the image to the left -- the items listed in blue are folders that contained detailed logs about the services of their folder names). And, what is even better, for all logs on the system, Linux has a service called logrotate that automatically purges logs older than 1 month for most services. This is still one serious thing that Windows lacks, even for major services like its web server, IIS (Internet Information Services). For example, IIS stores its logs in the c:\windows\system32\logs folder and these will just keep adding and adding up over time, and require manual purging at some point. In order to automatically purge these logs, a script would have to be created or a third party application purchased because there is no built-in functionality for this in Windows. This is just plain silly to me that Microsoft's own products can write log files but there is nothing to purge them. The nice thing about the logrotate service in Linux is that it can rotate logs for any application that writes its logs to a file, anywhere on the disk. Just edit the configuration file, /etc/logrorate.conf (this is the location for Red Hat / Fedora distributions), and the next time logrotate is run (which is usually a simple cron job) your logs will be rotated automagically. By default, logrotate keeps 30 days worth of logs with 4 files (1 file per week), and it automatically modifies the log file names and appends the rotation date to the end of each file (see the screenshot above for the typical log directory in Linux). This is a nice, clean, simple and effective way to handle all logs on your system.

We can take this example to the desktop arena as well. Over time temporary files will build up, and can cause all sorts of strange things to happen. Not only this, but they can start to use up a lot of disk space. Problems such as Microsoft Word locking up, Microsoft Outlook locking up or its window size stuck and cannot be resized, Outlook failing to open any email attachments, and a list of many many more. I have worked in Help Desk environments, so issues like these occur on a regular and continous basis. This goes back to my point earlier about Windows being an entity that needs constant attention and maintenance, or "housecleaning". Commonly, simply emptying out these folders of temporary files will fix a lot of these issues. Folders like c:\temp and c:\documents and settings\*\localsettings\temp\ in Windows, and /tmp in Linux. Countless times I have seen unexplainable issues magically go away after emptying out these temporary folders in Windows. I have yet to see any open source software in Linux malfunction in the same way as Windows. So whose fault is it? The applications who leave these files dangling all over, or the operating system who houses these files? Well, rather than pointing the finger, some clever open source individuals came up with a handy Linux service called "tmpwatch", which is a simple cron job (scheduled task) that runs, that comes standard with a lot of Linux distributions. This service will automatically clean up files based on the times that they were last accessed. Of course as with all open source software, it can be tweaked if desired. But, when you look at the commercial software world of Windows, a service such as this simply doesn't exist! Yet another example of how open source strives ahead with unique and real ideas that have been implemented by everyday users of the software. OK you can argue that if you were knowledgeable enough you could write a script in Windows to do this process of cleaning up the temporary files, or you could take the time and do this process manually every couple of months. But, why can't this sort of automatic funtionality be included with Windows right out of the box like it is in Linux? We already know that it's a confirmed problem, simply doing a search on Google about emptying temporary files out will undoubtedly bring up a lot of results and a list of issues tied to this problem. Is nobody interested in finding a permanent fix for it? Well, maybe so, but it's up to Microsoft to actually implement something like this into the operating system since it is closed source. The real answer to this remains unknown. My best guess is that Microsoft is too busy making Windows look pretty and getting it on the store shelves, rather than worrying about stability issues.

Windows errors
Windows log details, often cryptic

Even directly after a fresh install of Windows, the logs can be peppered with miscellaneous errors that should be fixed or addressed. Yes, many things are logged in there, but when it comes time to make sense out of what is in that log, often times it turns out that the information posted in it is worthless, or requires a convoluted process to decrypt. In Windows I have seen several instances where an error code or information will be provided in a proprietary logged format, which requires a separate a tool to install that needs to be run in order to decrypt the information! What is wrong with providing the logs in clear text that can be read by a simple text editor? I have never understood why this is, but my best guess is that it either would require more up front programming to have Windows provide more information in a clear readable format. This is a huge contrast with Linux, where logs are written for every service that runs, and the logs are provided in a format that can be read and understood, not to mention they can also be opened with a basic text editor such as vi, vim, pico, nano, or a simple "cat" command to display the content (see the example screenshot). As I had mentioned earlier, the simpler the better, and in this case I can testify that I have spent far less time dealing with special file formats of Linux logs, and more time looking through them watching for security errors, or just easy browsing to observe activity.

To sum it all up with the maintenance side of things, I can clearly testify that Windows is by far much more work to maintain than an equivalent Linux installation. The above are main points to back this up, and later on I will provide reasons why this extra maintenance work in Windows will also increase costs as well. Costs like this can be transparent or hidden, as they cannot be seen directly.


Next Section : A Matter of Cost?

Previous Section: Maintenance Headache of Windows:Reliability,Anomalies,Stability


Table of Contents


Click Here to Continue reading on making the actual migration.