Open Source Software vs. Commercial Software:
Migration from Windows to Linux
An IT Professional's Testimonial
A Little Politics: Windows vs. Linux
An Open or Closed Door?
The debate of open source vs. closed source is nothing new. Back in the 1980's, Richard Stallman realized the massive benefits of keeping the source code for software in the open, not behind closed doors. Open source requires the programmer to share the code and cannot hide any parts of it. Closed source is pretty much the opposite. Source code is kept secret on purpose, in order for the software vendor to make more money and keep competitors from stealing code or using it against its creator. However, as we have seen, this doesn't always work out. Microsoft has even admitted to this and has proven to us that it realizes this fact by going and purchasing mountains of patents on its software in hopes of crushing out the competition. As we already know, Microsoft has a long history of playing games like this to keep competition to a minimum. The issue with Microsoft and patents is a very interesting one, especially when you discover the motive of this move by Microsoft. I will go into further detail on this subject a little later.
By nature, closed source or commercial software introduces changes between versions. Why is this? My opinion is that companies feel compelled to make changes to make the customers feel like they are buying a better product. Sometimes, new and helpful features are added. Other times, extra fluff is added or the program is re-arranged with the same functionality as older versions (for example Microsoft Office 95 through Microsoft Office 2003 -- many similarities and features can be found from version to version, yet the features are moved around to different places or called different names, yet the core functionality is still similar). This can cause training headaches on top of cost if businesses and individuals must upgrade to stay competitive and compatible with others. This huge change between versions is quite rare in the open source world. Nobody is trying to make a profit selling the software. Instead, the open source community focuses on improving the software. This results in higher quality software without political issues of commercialism.
The topic of open source vs. closed source is evident everywhere today. Most notably is the competition of Windows to Linux. Microsoft will be quick to point out that Windows is far more secure than Linux. But is this really the case? This is a debatable issue, but based on trends and past data, Linux has an edge over Windows because it is open source. Microsoft points out that the source code of Linux is open to everybody, so that anybody can create loopholes or find security issues and exploit them. It is true that the source code is available to everybody. However, my personal belief is that if an exploit is found, the open source community being so vast is able to correct the problem almost instantly and thwarte any sort of malicious behavior. Also, don't forget that vendors like Red Hat pick up all of the source code and package things together into their own distributions. This is a winning situation as the vendors clean up the software so that everything flows together and is free of any sort of exploits. So, in the end you have this very unique relationship of the open source community and the vendors who step in and package everything up into a form that is easily distributed and used by the regular users and non-programmers.
By shutting the door on the source code, Microsoft essentially tries to keep people from obtaining the code and doing harmful things such as writing viruses and exploits. But, it is up for debate on whether closing the door on the source is really effective from the security standpoint or not. It seems that exploits are found even when there is no access to the source code. We know this because week after week we hear of security holes identified and fixed by Microsoft. Most of the time, these security holes are not exposed long enough for people to take advantage of them. But, in some cases they are. Take for instance the infamous Blaster Worm [1D] that ran wild on Windows operating systems in 2003, or the Slammer Worm  that jumped around on Microsoft SQL servers in the same year. By the way, I have seen posts for the Blaster Worm that use Linux to heal Windows itself! Commercial software leaning on the shoulders of open source, hm! These outbreaks have cost organizations and companies all over the world millions of dollars of cleanup work and wasted time. But, back to my point on having closed source software. Not only have we seen that it may not be effective in stopping malicious activity, but it also prohibits effective and efficient enhancements or bug fixes. This falls back onto my point on the limited number of developers at Microsoft, compared to the infinite number of developers of the open source community. Yes, Windows and Linux will have bugs. But, as I mentioned before, opening the source code up to the entire world allows as many of the pool of unlimited developers to fix the problems as desired. Whereas relying on a limited group to come up with a Windows fix behind closed doors that nobody else can see, inevitably causes delayed fixes, and less than par enhancements.
Security is a constantly increasing concern in today's computing world. Security holes are found in software all of the time, and this really cannot be avoided no matter how stable or strong the software appears to be. Windows and Linux both have security issues that need to be resolved on a continuous basis. Also, in my previous point about having an unlimited number of developers for open source Linux, when issues are found they can be fixed very fast. Often times within hours, the problem is identified and a fix is rolled out. In the world of closed source software with a finite number of developers, there is a lack of resources to find and fix the security problems. This can delay the fix for days.
Let's touch on actual features of software, too. Have you ever been using a piece of software and thought, "gee, if it only had a feature to do this", or "this doesn't make sense why it works like this, can this be changed?". Well, with closed source software, your luck in having anything changed is probably zero, unless enough people start to bring up the same idea which convinces the party that controls the software to actually put in the resources and change it. You might have better luck trying to write to congress and ask them to pass a bill in your favor. See the comparison? With open source software, anybody can pick up the source code and make changes anyhow they desire. Obviously this requires high level programming skills, but it's the concept that anybody can contribute and insert their ideas into the global product that makes it a winning situation. Chances are that if you run across an idea, you are probably not the only person that has thought about that particular idea, feature, or enhancement. This allows members of the open source community to work with each other and continuously improve open source software. It is correct that nobody is making a profit from it, yet it is benefitting the community using the software as a whole in getting a fixed or improved product. Developers of open source actually use the software which is obviously a huge bonus, too. This is the way the world of open source software works, and is why it works well.
So, how much better is open source software to closed source software when comparing apples to apples? Well, this can vary greatly. From my experience, commercial software is almost always readily available for any task you can imagine. Many companies want to put their product on the market in hopes of making a profit. With open source, there has to be a functional need in order for somebody to sit down and write an application. Normally, an open source application is created and is based off of an already existing commercial application. But, the key point with this is that often times the open source application will take the ideas and functionality of the closed source version, and run away with further enhancements and functionality, as well as logical design, etc. This is a product of the vast source of the developers with open source, versus the limited team for the closed source application. You will essentially get more feedback and more input on open source software, which broadens the possibilities immensely.
|I have included various examples of commercial software that is faulty or limited in functionality. But there are even more examples of software that has faulty design as well. Take for example Microsoft Outlook. One of the strange design issues that I have never been able to explain is how Outlook handles the storage of mail on the local hard disk. Outlook stores this mail in one single file that can grow, but in order to shrink it, it has to be compacted manually. There are many disadvantages to storing all mail in one single file. Corruption for one, if this file should become corrupted, it could potentially cause the contents to be completely lost in one sweep. Every other program that I have encountered will store the mail in individual files (usually one file per folder). Microsoft's own Outlook Express does just this, so why doesn't Outlook? In all software that I have dealt with (except for Outlook) the Inbox is stored in its own file, Sent Mail in it's own file, etc. This design seems more logical for management and speed (the operating system will handle lots of small files better than opposed to one large file, especially over a network). And, as I mentioned, the file for Outlook has to be compressed manually if mail inside this file is removed. So, if you decide to clean house and delete old messages, the file will still take up the same amount of disk space! To me, this design seems illogical and often times I wonder why it was done so. Microsoft has a tendency to do things its own way, which I will get into more detail about later, so this is just one example of this. And since it is closed source, only Microsoft itself knows why it does what it does, and nobody else can have any say in it or do anything about it.|
Pick An Edition, Any Edition
Software vendors will often publish their products, and put them into the best light possible to tempt potential buyers to buy them. This is to be expected no matter what kind of product it is. Obviously, the product should look as good as possible up front, to hopefully market and sell well and bring in revenue. That's pretty much the goal of any business, right? Often times with Microsoft products, there are many options offered. While this can be thought of a way to save its customers money by allowing them to buy only what is needed, it can also cause quite a bit of confusion. Take for instance Windows Vista. There are 4 editions of Windows Vista offered: Vista Home, Vista Home Premium, Vista Business, and Vista Ultimate. So what are the differences between all of these versions, you ask? Well, you can comb over Microsoft's website to determine what each edition comes with. They have a chart that outlines all of the editions. However even after reading Microsoft's website to determine the differences between these editions, it will probably still be hard to come to a conclusion about which edition suits best. Features like "protect against hardware failure","remotely access your business resources" and "have more fun on your PC" are given in the chart. Shouldn't these be included as standard features with every edition of an operating system? And why can't these features just be offered in one single edition? The answer to those questions is anybody's guess. Somehow I'm guessing it is to make more money somehow, although I can't fathom the exact reason on how that would be possible by splitting them up in this fashion. So, even after deciding what edition to get, what happens if you were to buy for example Vista Home Premium, then later decide that Vista Ultimate better suits you? Good luck trying to make that transition from one to the other.
Logically it would seem so much simpler to offer one product up front and keep things simple. It seems that people will spend more time trying to think about it and figure out which version to buy, than actually buying the product. And, once you are done choosing which version of Windows to go with, this issue can be compounded when it comes to any additional Microsoft products that may be desired. Take for instance Microsoft Office which is probably the most popular product to be installed in addition to the Windows operating system. There are a total of 9, yes NINE, editions of Microsoft Office 2007. Let's count them out: Office Basic, Office Standard, Office Home and Student, Office Mobile, Office Small Business, Office Professional, Office Professional Plus, Office Enterprise, and Office Ultimate. Whew! Buying an operating system and installing it with software shouldn't be like buying a car.
Also, with as many editions as this, how can you prevent from overpaying for an edition that you may not even take full advantage of? This problem can also be compounded with the purchase of a new computer, as one of the editions will probably be included with the computer. This is esentially making the choice for you, without your input! Granted, this usually only happens with a super sale or stores that stock pre-built systems. Most vendors like Dell, Gateway, HP, and others offer the ability to customize the software that is included with the system. However, with that said, sometimes with certain systems the choices are limited to a narrow band of products because of supply and other reasons. If there was a single version of the product, it could be included with the computer as an option (either with or without) and that would be that, period, end of story. Wouldn't that be nice? Instead, the story gets dragged on with more complexity. So, when buying a new computer, what if the edition isn't the one that you want? Getting this changed could prove to be quite a challenge, or in the worst case, completely impossible to do if the vendor doesn't allow you to do so or it is a package deal.
Fortunately, with Linux and pretty much all open source products, there is one edition and only one. So, if you get a computer with Red Hat Enterprise, that's what you get and you get everything. If you get a computer and install Fedora 10 yourself, you still get everything. No matter what Linux distribution and hardware you choose, you get everything, period. Install what you want, then add what you want at any time later. No licensing, no worry about going back and switching versions, no worry about pricing differences or uninstalling and reinstalling the operating system, no wasting time doing homework on which edition to get. It can't get any simpler than this. So in conclusion, by choosing Linux, you can focus on getting your computer up and running, and work on what the computer was meant for, rather than wasting time choosing out the computer software itself. Also the list of optional software for Linux is vast. And don't forget that open source software will usually get you the same functionality as the commercial software will. I will get into more detail on this in a bit. Each Linux distribution comes with everything, and as I mentioned, when you install you can then choose what to start with and go from there. This makes maintenance of computers and software very easy and straightforward, which is imperative for business environments and even simpler home environments as well. Installing software is usually VERY easy, I should add. For instance with Fedora and Red Hat, each piece of software is packaged in a RPM file (which stands for Red Hat Package Management). This means, you can download a single package file for the software you are looking for, and install it with a simple command. This is similar to installing software in Windows, but doesn't have the issue of Windows installations where there can be multiple installation package types and packagers, that can cause a lot of problems. The RPM packages make managing software in Linux a breeze.
One point that I would like to make is that there ARE various distributions of Linux, which is probably one of the most arguable points by Microsoft supporters. And, they do have a good point at that. Not everything is perfect, and this is a downfall of Linux. Distributions appear, and can disappear with the next change in wind direction. My only suggestion is to stick to one of the main distributions such as Red Hat / Fedora, Ubuntu, Suse, or Debian. Please forgive me if I don't mention the others, as there are a lot and frankly I have only used Red Hat / Fedora over my years. I originally used Red Hat in its early days, and have used it ever since. My reasons are its strong user base, along with true commitment from Red Hat over the years to contribute many tools and additions to its Linux distribution. Even currently, Red Hat is still one of the top contributors to Linux overall.
High End Usage
My next focus is to show examples of Linux being used in many different everyday applications, from the most complex to the most simple, to help display the wide array of its usage.
Server systems are probably the best example of critical systems that need to stay running for as long as possible. Independent studies over the years have shown the number of servers that run Linux versus servers that run Windows. In 2006, Netcraft (an independent analysis company) found that 8 of 10 of the most reliable hosting companies were running Linux on their servers. In 2008, they reported that 5 of 10 were running Linux, 3 of 10 running FreeBSD (another Unix derivative), and 2 of 10 running Windows.
A prime example of Linux in use in the everyday world is Google. Google is one of the most successful businesses on the Internet, and what else would they use as their backbone but Linux. Google has posted comments on the Internet that they chose Red Hat Linux over Windows because it costs nothing, and added that it relies on internal staff for support of its servers, as well as the Linux community. Google is also said to possibly own the largest group of Linux servers for a single organization. There are many articles on the infrastructure of Google available on the Internet that will go into further depth. But my point in bringing this up is that we should learn from the best and the most successful, which Google is definitely a strong candidate for.
Another example of open source at its finest is Wikipedia, which is probably the most widely used reference website on the Internet. Wikipedia's software itself is open source software, and Wikipedia's servers run Linux.
I happened to stumble on this next one as I was writing this. I recently found out that even the Internet super retailer Amazon.com uses Linux . However this story isn't one of a company moving away from Windows, as Amazon.com already had run Unix but moved to Linux to decrease costs. But in discovering this I was not largely surprised, however very intrigued by the numerous reasons. They seem to go against the grain of Microsoft's own recommendations that in the article said "A Microsoft representative, however, warned that short-term savings seen by Amazon could turn into a long-term increase in costs." But, the article later says "For 1,000 users tapping into a Linux server, the total cost is about a fifth to a half that of a Unix system, Kusnetzky said. The cost of administering a Linux system is about the same percentage of the overall cost for a Unix or Windows server, he added." This isn't a comparison of Linux vs. Windows, but is an example of Linux being used by yet another one of the most successful companies on the Internet.
Take yet another example of one of the most important applications of PCs: the Federal Aviation Administration's computers that control air traffic flow. We all know that air traffic control is one of the most vital functions and stressful jobs there is. Millions of peoples' lives are at risk each day. It's no wonder the FAA choses Linux  for this application.
Also, in the world of high end network application appliances (take for example the Symantec Mail Security Appliance -- a scalable and very popular mail filtering gateway), Linux is the operating system of choice. I have yet to see a high end security appliance that runs Windows. Why is this? My only thought is that Linux is free, extremely stable, can be customized without lists restrictions from Microsoft, and other reasons that I have stated already. If Linux is used for these high end appliances, you know that it is definitely suitable for running your desktop and server systems.
Another one of my favorite examples is VMWare ESX Server . VMWare has been around since 1998 and specializes in software for running virtual machines. I usually think of a virtual machine as an emulated real PC, you can run a virtual PC within your regular operating system, completely independent of your main operating system. Think of it more as running a computer inside of your computer. Anyway, VMWare's products are unmatched in the market for performance, reliability, and features. ESX Server is an amazing product that runs on physical hardware, and can host multiple guest operating system installations. But guess what operating system that VMWare chose to run at the root level on the hardware... you guessed it... Linux! And no better example than this where the root level host operating system must be absolutely stable and provide as much uptime as possible, since it is in control of multiple guest operating systems. If the root operating system should fail, it would essentially take down all of the guest operating systems that depend on it, which in most cases is several. ESX Server takes advantage of the extreme flexibility of Linux, and can host virtual machines that can failover in realtime without a hitch. I have seen this product in action and it is truly amazing. I'm not out to sell VMWare, but to point out that in the most critical applications, Linux is chosen over Windows time and time again. Microsoft has however tried to being competing with VMWare by coming out with its own virtual server software, however it has just begun and definitely has a long way to go in order to come close to VMware. We will see in the upcoming years.
Low End Usage
We've gone over some examples of Linux being used extensively in the high end world of complex server farms and security appliances, with top companies on the Internet. But, since Linux is very flexible and can be adapted to just about any environment, it is used in a wide variety of low end and localized uses.
A very good and widely unknown example is the use of Linux in many retail broadband routers, print servers, and other small consumer grade network devices. Take for example the Linksys WRT54GL broadband router that I mentioned earlier. This router is one of the most popular models out there because it is known for being a rock solid device and very stable. Wouldn't you know it, it runs Linux and therefore members of the open source community have also written variations of the firmware and in turn made a commercial grade router out of the WRT54GL. One of the most popular firmware versions is DD-WRT  for the Linksys WRT54G/WRT54GL routers.
There are a lot of other devices that use Linux. Often times it is not widely published for the device. However, if the device has an operating system that needs to run it, chances are pretty high that it uses Linux. Many companies have adopted Linux because of all of the reasons I have mentioned. Windows has tried to fight back in this arena, but has failed miserably as I just don't think they can develop a version of Windows that is stripped down enough to run on these smaller devices with a limited amount of memory. The closest thing I have seen would probably be Windows CE or Windows Mobile 2003 and Windows Mobile 2005 which run on portable devices like phones and scanners, etc. But, these versions of Windows need way more resources than stripped down versions of Linux, so Linux remains the winner.
Determining the exact market share and usage of operating systems on the Internet today is a controversial subject. Many studies are sponsored by companies and are skewed to appeal to the targe audience. The sponsor of this article, Apex Internet Solutions, a website design, hosting, and multimedia company based in Michigan, has also collected data from its hosted websites. The general breakdown at the time of this writing are as follows:
|Windows 3.x - Windows 98||1.23%|
These results are based from real log data from the web servers at Apex, and are not fabricated or skewed in any way. The trends however are very interesting. Windows is slowly dropping, Macintosh is gaining, and Linux is also slowly gaining as well. It will be interesting in the near and distant future to see how these trends continue.
Microsft itself has even openly admitted that Linux (and Macintosh) is putting a dent in its dominant market share. Most recently in February 2009, Steve Ballmer presented the slide below, depicting Microsoft's own research on the subject. It is interesting to note that their findings actually showed a higher value of Linux in the market, which is closer to 4% when a lot of the surveys are still showing something in the ballpark of 1%.
Next Section : A Little Politics:Monopoly Game, Support Nightmares, Competition, Piracy, Licensing, Activation, Developer Pool
Previous Section: A Little Politics
Table of Contents
Click Here to Continue reading on making the actual migration.
1AA. Microsoft pushes for single global patent system
1A. CNN Money: Microsoft takes on the free world
1B. CNET News: TomTom suit suggests Microsoft's still Microsoft
1C. CNET News: Microsoft lawyer 'won't speculate' on Linux suits
1D. Wikipedia : Blaster Worm outbreak in Microsoft Windows
2. Wikipedia : Slammer Worm outbreak in Microsoft SQL Server
3. Wikipedia : United States v. Microsoft
4. CNET Article: How Linux saved Amazon millions
5. FAA Choses Linux as its operating system for air traffic control systems.
6. The DD-WRT Home Page
7. VMWare ESX Server Wikipedia page