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


Maintenance Headache of Windows

Local Software Management

Inconsistencies can be spread throughout any operating system, which causes extra work when maintaining a system. I have found that both Windows and Linux have inconsistencies. But, I have found the inconsistencies in Windows to cause much more wasted time and effort when compared to Linux. A couple of very common examples are software mangement and documentation. In Windows, installing software can use a variety of methods. Esentially, you have a combination of Microsoft's own Windows Installer service combined with 3rd party installers like InstallShield, Wise Installer, and others. Luckily, software installation in Linux is much simpler in most distributions. In my example, I will use Fedora (Red Hat) to keep this document consistent as well as this being my favorite distribution. With Fedora, every piece of software available through Red Hat / Fedora's distribution, which is usually 99 percent of most open source software, and each piece is packaged into its own RPM package file. This means you can simply go to the "Add/Remove Software" program and install/remove any RPM software package you desire, through one central organized interface. The RPM (Red Hat Package Management system) is one of the most powerful features of Fedora / Red Hat Linux. Handling the installed software on any PC is the next most important feature besides the operating system itself.

By keeping all software packages in one central management system, software installation in Linux is kept very clean. This also helps to avoid conflict among software packages as well. And, as a bonus, it also does complete checks and balances among all software on the entire system. Frequently in Windows, software installers will conflict because they are developed by different vendors, so there is no mechanism to avoid installers interfering with other installers. This can cause a huge array of problems, and I believe accounts for a lot of software problems on Windows systems. Even products released by Microsoft can conflict with other Microsoft products.

windows installation reboot message
Installing two products requires a reboot between the first product installation and the second product installation. Microsoft Exchange 2010 Tools installation shown in this example.

To help resolve some of the software installation problems in Windows, Microsoft developed the Windows Installer service to try and create a central installation system for Windows. This has greatly helped the mess of 3rd party installers. However, vendors are not required to use Windows Installer, so 3rd party installers are still used. And, Windows Installer has been known to be quite buggy. Frequently I have seen the Windows Installer system become corrupted, causing products to not show as being installed even when they exist, or causing installed products to be in a "stuck" status and can't be uninstalled. There are even instances where two products cannot be installed without rebooting after the first product is installed and before the second product is installed -- see figure.

To date, I have never seen the RPM (Red Hat Package Management system) become corrupted in any way. Also, the RPM system can install concurrent packages one after another, without any issues whatsoever. Microsoft itself has indirectly admitted that the Windows Installer system can become corrupted as it has released the "Windows Installer Cleanup Utility" to help users clean up the mess that can arise. This is more like putting a band-aid on the issue, really. Unfortunately I don't think there is a better solution, mainly because of the 3rd parties that are involved. According to Microsoft's own website for the Windows Installer Cleanup Utility, it "is provided 'as is' to help resolve installation problems for programs that use Microsoft Windows Installer. If you use this utility, you may have to reinstall other programs. Caution is advised." Also included on the very same page are additional links and information about Office 2007 installation issues, depicting further installation woes of Windows Installer.

So we know that the RPM package management keeps the Linux operating system very clean. Not only because of its efficient and central way of keeping track of installed software, but for dependencies as well. All software installed on either Windows or Linux needs to interact with other products. With the RPM package management system on Linux, all software dependencies are kept in one central repository on the Linux system, so all dependencies are known and handled automatically for us for the entire system. This is huge, and is yet another reason why a Linux system with all of its supporting software is so efficient and runs well, because it is kept clean and doesn't have any conflicts. I believe that because Windows lacks in these central software checks and balances, that many Windows instability issues arise.

Fedora and Red Hat have used the RPM system for packaging software since Red Hat's earliest days, because it makes software management very simple and straightforward. Because of its simplistic nature, it also allows software to be installed from a simple command prompt if desired, which opens the door for unattended installations or behind the scenes installations that can be done without any interruptions on the computer. Somebody can be actively using the computer while software is being installed remotely. This is a very powerful feature for enterprise or business environments with hundreds or even thousands of computers. With Windows, unattended installations are not always possible as it all depends on what was used to package the software, what it conflicts with, and its dependencies (if they are even known). Some Windows installers support unattended or remote installations and some don't, and other issues can be faced such as popups, inconsistent installation logging, and other problems because of the inconsistency of the installers. In the enterprise environment, Microsoft does offer a server package called SMS (System Management Service), which can handle remote and unattended installations on most Windows platforms. The catch though with SMS is that the installations can still be quite messy because of the inconsistent installers. And frequently, in order to get software to install with SMS, it requires network administrator to repackage the software installations to make them install. This can be a very tedious and involved process. With the RPM system on Linux, all software is pre-packaged and doesn't require any additional work.

As I mentioned, Microsoft SMS is great for the enterprise, but installing SMS for a small business usually doesn't make sense. On the flip side, Linux lacks (as far as I know) a good software remote deployment solution. However products for Linux are actively being developed all of the time, so there may already be solutions out there that handle this. But, back to my main point, in Linux I have only found one or two rare programs that were not available as a RPM file for Fedora or Red Hat, in which case it must be installed with a script from the command line. This usually requires more advanced knowledge, and thankfully is a rare occurrence for most users.

Supporting Documentation

Documentation is another commonly used piece inside any operating system. In Windows, this documentation can be in one of several formats: html, text, PDF, or proprietary help document format CHF file. In Linux, most documentation is supplied in both plain text and html format almost every time, sometimes additionally as a PDF, and is all stored in the /usr/share/doc folder. And, for those that like to dabble around on the command line, Linux takes advantage of the Unix man page system, where supported documentation can be found for any command line utility. For example using the command "man vi" will display the documentation for the "vi" program. This allows for very quick and easy reference right from the command line. In Windows, I find myself having to search for the documentation, as it could be stored in any location since there is no central standard repository. This situation gets even worse in Windows when you add 3rd party software to the picture. Most of the time 3rd party software documentation will be located in the folder where its programs are, but there is no guarantee what format it is in or its location on the computer.

Supporting Software

Another thing that really impresses me about Linux is the enormous amount of built-in utilities that are readily available. Of course, this is only for those that wish to venture to the command prompt. Usually, this is done by more experienced users or system administrators that typically visit the command prompt to perform various tasks. In Windows, countless times I find myself scouring the Internet for additional utilities that are not included with the operating system to do some sort of task. Sometimes these utilities are free, and sometimes they are not and actually require a purchase or to download a trial version. But, either way valuable time is wasted scouring the Internet for software that should be included already in the operating system. Plus, documentation for these 3rd party utilities that need to be downloaded causes a lack of uniformity and consistency between them. In Linux, all of the utilities have a "man page" which is the supporting documentation on how to use them, and everything is kept very consistent. And, the "man page" can easily be brought up right from the very same command prompt that is used to run the utilities themselves. All in simple plain text. Back to Windows... sometimes the search leads me back to a product called "Cygwin" which is a Unix shell and Unix utilities for Windows. Ironic, eh? Bringing the Unix command line to Windows, mainly because it is so much more powerful. Of course, Microsoft offers additional packs that include additional utilities, but why not include these with the default operating system? They hardly take up any space on the disk. This has puzzled me for years.

Nobody argue against the fact that Windows has lacked a good command prompt for quite some time. Only recently in Windows 2008 have I seen Microsoft actually pursue the command prompt. And now that they've discovered what they have been missing all these years, they have leaped right in designed Powershell (Microsoft's own proprietary command line shell). Again, this is evidence of Microsoft trying to stray off into their own land, only to come crawling back to adhere to the standards that have already been established for years by other parties. Previously I mentioned the extremely powerful and versatile Linux command prompt. By default in Fedora, you get the bash shell (Bourne Again Shell). This shell has its own language and is very powerful. However, with any shell you can get to all of the Unix command line utilities. Even the latest versions of Ubuntu, Fedora, and others include all of the classic Unix utilities. Favorites such as vi, tar, man, diff, as well as the filesystem utilities for manipulating files. In fact, there are so many utilities included that total administration can be done from the command prompt on a Linux computer. This includes everything from examining running processes, editing configuration files, restarting services, and an infinite list of other tasks.

By sticking to this basic philosophy of keeping things simple, Linux in my opinion has huge advantages over Windows, which I will demonstrate in more depth below as we focus on maintaining Windows and Linux operating systems.


Next Section : Maintenance Headache of Windows:Licensing

Previous Section: Maintenance Headache of Windows:Dependencies,Compatibility


Table of Contents


Click Here to Continue reading on making the actual migration.