There has been so much buzz in the operating system market lately about the impending (or ongoing, depending who you talk to) confrontation between Microsoft's Windows franchise and the upstart Linux offering that the dustclouds of debate have begun to obscure the issues at the crossroads. There are a great number of papers already authored espousing one fork or the other, and if this were another of those, I wouldn't bother to write it. But in all the reading I have done on the subject, I have found very little which attempts to make a non-partisan, objective evaluation of the debate. That is what I will attempt to do here, and in plain English insofar as possible, in hopes of shedding some light on a topic that is in fact becoming quite important to the average businessperson for technical purchasing decisions. I intend to approach both sides of the dispute with equal sarcasm and skepticism and sort it all out at the end.
Since every writer who feels compelled to spout the virtues of Linux also includes a thumbnail description of exactly what it is in with his or her diatribe, I will avoid doing so here--go read one of them if you want to know what Linux is. Still, since it is an important point to understand in evaluating this debate, I will make some note here of what Linux is not.
Linux is not a direct competitor to Microsoft Windows. It is not, in point of fact, an operating system. Rather, it is a kernel around which an operating system is built, and there are several major and many minor distributions of these available to choose from. The vast majority of these are more or less freely available; the licensing terms which the kernel Linux is released under mandates that the code behind any system built with it be made freely available to anyone who asks. This concept, Open-Source Software, is actually what Microsoft is competing with, and it is more a business-model than a technology (some might argue a poor business model, if one defines business as "activity performed to make money").
Although some pedants argue strenuously against it, the word "Linux" has become a catch-all for these various collections of open-source software distributions, and that is how I will use it here--but be aware that this does not make it a feature for feature competitor to Windows, and that therefore many comparisons made by both sides are misplaced.
All the talk of features and ease of use stand somewhat awkwardly in the shadow of the huge elephant in the room--the fact that Linux distributions are free to install and use for as many users as you would like, and that Windows costs hundreds of dollars or more for each user to use legally. This is going to be the central issue; for all the comparison of features and total costs of ownership (TCO), it's impossible to ignore that installing Linux doesn't require a dime up front, whereas Windows will set you back three hundred bucks a head (plus client access license costs for servers) right out of the gate for desktops, or one thousand dollars at a minimum for servers.
Point, Linux.
Therefore, the Microsoft position will be allowed the first rebuttal.
Microsoft and its supporters counter that Linux does not have as many or as good features (in other words, it just can't do as much, or as well) and that it is not as easy to use, and that when you look at the total cost of ownership over the life of the product, it's really not as cheap as it looks. Moreover, they'll say, you can't count on something you didn't pay for--who is going to support it? Not the guy you didn't pay anything to for it. And it's apt to change on a whim, since there is no business force driving it--you could find yourself in a blind alley at a moment's notice, with no upgrades, no support, nothing.
We'll look at these points in order.
This is one of the areas that is difficult to compare for the reasons stated above--there are different distributions, and these have different features available. Windows has a more or less consistent set of features, which is a point in its favor--consistency is value by those of us in the middle, because it implies some stability and ongoing familiarity.
The argument, however, is something of a straw man. Most users have a certain limited set of features that they rely on, and regardless of the software being looked at, if it has that feature set, it doesn't matter what else it does or does not include. In fact, a good argument can be made that 'features' over and above what you actually use are detrimental--they take up space and increase complexity, which causes problems (or at least make problems more difficult to diagnose). Linux wins on that count, as it can be stripped down into a very resource-efficient and specialized system, whereas Windows requires a fairly bulky and standardized installation no matter what you plan to do with it.
When it comes to directly comparing common features that both systems have, some win out in Windows, and some win out in Linux. In terms of performance and capability, you pretty much just have to put them up side by side and get both systems to do what you are looking to do in order to see which is better at it.
There are many merits to this rebuttal as well, and they also involve consistency. Microsoft has largely copied human interface guidelines from Apple over the years, and the vast majority of prospective users were trained on one of those two platforms. They are therefore comfortable with the interface in the same way that the British are comfortable driving down the left-hand side of the road. Not to mention, a great deal of research has gone into improving the interface for ease of use by running it past experts and focus groups.
There are certain applications and aspects of various Linux distributions that were created by people with an eye for interface design, but these are few and far between, and the fact that there is no over-riding distributor means that there is almost no consistency between various parts of the distributions, not even going into the differences between the distributions themselves.
There is a specialized subset of this argument dealing with command-line interfaces (CLI), which the vast majority of users never see--the little blinking text prompt on a black screen that is to the average user simply a sign that something is gone horribly amiss, is to systems administrators and technicians the preferred method of interacting directly with the working guts of the operating system and applications. Although very few people will contend that Linux Graphical User Interfaces (GUI)--the pretty picture and mouse-driven world of most users--are not generally inferior to the Windows brand, within this subset of the ease of use case, certain arguments are advanced proposing that Linux is in fact a much easier system to use from the command line than Windows. The reasons for this are that, one, the Linux file system structure is adapted from an older and more mature structure evolved in Unix, which provides more consistencies and standards than does the newer Windows architecture, and two, that most of the important bits of information in a Windows system are stored in a rather arcane and inaccessible monolithic structure called the System Registry. This is a design philosophy difference with pluses and minuses on either side, but since most Linux applications (and the operating system itself) can be largely configured with a simple editor working with self-documenting text files, it can be a much faster and less error-prone process than accomplishing the same things in Windows.
This subset is largely irrelevant, but whether or not it comes into play at all depends mostly on whether or not the debate over operating systems is centered on servers or workstations. A server, which only system administrators will ever interact with directly, does not need to be as easy to use as a workstation--a workstation, on the other hand, pretty much needs to be what people expect it to be when they sit down, or it becomes unusable. Unless great strides are made by Linux developers, Microsoft will own this aspect of the debate for years to come.
This is another difficult comparison, as most of the information available on it either results from rabidly partisan studies or is inadvertently apples and oranges--differing sets of assumptions that affect the outcome in inconsistent and unpredictable ways. The question of how much a piece of software costs to operate over its lifetime is intimately tied to how it is supported--since most of those costs will involve product support.
Microsoft, clearly feeling threatened by something, has compiled an exhaustive list of studies showing that it leaves Linux in the dust with just about every metric. Alas, most of these studies were sponsored by Microsoft in the first place, and have somewhat suspect balancing assumptions laced into them.
Pro-Linux forces have not rested idle on this point either; they've conducted their own surveys and surprisingly, found that Linux is much cheaper over the long run than Windows.
Since we cannot completely trust any of those, nor do they come to any universally accepted conclusions, we'll do a brief gut check with what we do know.
As stated, Windows has an enormous cost hurdle to leap coming right out of the gate, considering the purchase and licensing costs it engenders. While it is undoubtedly correct (as the studies all do show) that the up-front costs are ultimately the smallest cost during the product life-cycle, that does not make those costs irrelevant. What it does mean is that, in order for Windows to come out ahead in TCO, it must involve far less in support and operating costs than Linux does through the life-cycle of the product. In other words, a Linux distribution must cost as much more, at least, to operate during the period it is used, than the comparative Windows distribution does.
It strikes me that this is quite unlikely. Windows, whatever else it is known for, does not enjoy a reputation as a durable, fire-it-up-and-let-it-run piece of software. There is a large class of employees and consultants (of which I am one) who make a substantially good living fixing problems in Windows software installations. A quick breeze through some search engines or relevant USENET groups will net you millions of hits on people desperate to find answers to their problems, and often desperate enough to pay good money for those answers. Microsoft spins this state of affairs to their advantage by claiming that the large numbers of support technicians who work on their platform drives down the average costs, and the studies support that fact--Linux qualified technicians are more expensive to hire. However, anyone with practical experience in hiring support technicians knows that numbers do not equal competency, and truly skilled Microsoft troubleshooters do not demand any less salary then their Linux counterparts.
Microsoft doesn't provide help for free, either--you will find yourself shelling out $35 to talk to a support technician, and $245 more to get elevated to a point where you might actually speak with someone who has direct knowledge of the code behind the product you are working with.
In the Linux world, it may be nearly as difficult to find and talk to that person, but it almost certainly can be done for nothing. If you do choose to pay for a support contract, there are those available which are no more expensive than Microsoft's offerings.
The difference here is in time and responsibility. Although you can nearly always locate free advice or a solution for your Linux issue, it will take you time to do so if you are not on a support contract, and your time is of value. And there is of course no implied responsibility--free advice is worth exactly what you pay for it: nothing.
Still, I am unconvinced that Microsoft actually delivers much of an advantage to the average business in this area. Having spent hours and hours of my life either on hold or waiting for escalation with Microsoft support representatives, I can testify that simply having paid a fee for support does not guarantee timely support. I've dug up answers to Linux questions on-line as rapidly as I've gotten a "professional" answer for MS on similar issues. Is Windows inherently easier to find answers for? On the Internet, I would say no--free resources are relatively equal. As an exercise in directed problem-solving, I would say it's a moot point dependent on the background of the troubleshooter--a trivial problem on either platform could well be solved instantly by someone familiar with that platform, but put them in front of the same issue on the other platform, and it could involve a monumental effort in research and experimentation.
As far as responsibility goes, there may not be as dramatic a difference as Microsoft would like you to believe either. The next time you have a few spare hours and some readily available caffeinated beverages, have a look at the End User License Agreement (EULA) under which terms you are running your Microsoft software. Microsoft does everything it can to absolve itself from any responsibility whatsoever for the proper function of Windows. Since they are in the business of making money, it's not to their advantage to put any effort into fixing or improving something they've already sold beyond the extent necessary to keep from pissing you off enough to find another vendor. This opposed to Linux producers, who create the software because they want to and whose motivation is not to make money but to make good code. This is a flip-side of the argument over the value of freedom, and an important one--volunteers can be more motivated and more dedicated than someone with a bottom line to watch. Microsoft, to be fair, has many motivated coders, but it is the business managers rather than the programmers who decide ultimately what gets fixed. You can as easily find yourself stranded up a blind alley as a result of their decisions as you can from any independent Linux developers'--as any dedicated Foxpro user could tell you. Any real reliance on holding Microsoft to their implied responsibility as software authors should be coupled with the understanding that it may mean a trip to court to do so.
And speaking of licenses, there is another added time-cost to Windows ownership that is not a factor with Linux ownership--license management. Properly managing Microsoft's software licensing is an intense, time-consuming operation.
So; the TCO argument, in the general case, fails my gut-check; long-term support savings for Microsoft products are not enough lower than those of Linux to balance out the higher initial costs for licensing. Of course, that is not all there is to it; there are numerous special cases to this argument, each of which may lead to a different answer. It depends on the tasks required, the resources available, and the timing of the situation. But as a general proposition, I don't think it's a valid assumption that Microsoft has a lower TCO than Linux.
We've seen what Microsoft supporters have to say about Linux--now, what do the hordes of scroungy Linux fanatics have to say about Windows?
Nothing good, it seems, which is suspicious in itself. No reasoned consideration of the debate could conclude that the largest software on the planet produces nothing but total and utter crap--there may be many unrelated business reasons why Microsoft got where it is today, but at the end of the day, it's because an overwhelming majority of users decided that their products were the best available for the money at the time. The market may be misled, but it's never completely wrong. There are some very solid technical reasons that Microsoft has risen to a position of such dominance, not just illegal use of monopolistic powers, and anyone discounting those reasons out of hand is not making an accurate comparison.
When you strip away the generalized "Microsoft is the minion of the devil" rhetoric, there are some core arguments made against Windows: Windows code is closed-source and proprietary, meaning you can't really see what you are getting and can't optimize it for your situation; Microsoft's licensing practices have become increasingly oppressive; Windows performance on identical hardware is worse than that of Linux; Windows security is poor.
This is one of the most key points that you will never care about in this debate. It's also one of the most complex to adequately explain to people who don't care about it. For our purposes, the differences between "open source" and "free software", while distinct, are not worth going into. It is worth understanding that free, in this sense, refers more to the lack of licensing restrictions than to the actual cost--although frequently these intersect.
The gist of the idea is that the actual code that makes your computer run is completely available for you to use and modify in Linux. Windows code is carefully guarded by Microsoft and only made available to select partners, and cannot be modified in any way even by them.
The reason you don't care about this is because you wouldn't know what to do with source code if it jumped up and bit you anyway--most business users are not in the business of customizing their software, and don't have anyone on their staff that could credibly do so at any rate. They want something they can download and run, not something they can poke around in the guts of. It's a handy thing to have available if you need it, of course, but as with many of the extra features that Microsoft touts as reasons to buy Windows, this is probably not something that most users would ever use.
It can result in some other advantages, however. Although most of us will never look at or comprehend the Linux source code, there are quite a few programmers out there who do. Because they can do so, and because of the culture of the development environment, it encourages the early discovery and patching of bugs and security holes. A similar issue in Windows is invisible to everyone except a relatively few programmers at Microsoft, and unfortunately is often not fixed until it has become a problem in a deployed product--and even then, after considerable delay.
It's also an advantage to creators of other software which will be run on Linux--knowing how the underpinnings of the base system work can be valuable to designing and optimizing application code, making many Linux applications better performing and more stable than their third-party Windows counter-parts.
Still, the primary advantage cited to this factor is not directly relevant to most users.
Microsoft has never made it easy to peruse their EULA for Windows--it's typically presented only as a rather small text box with several pages worth of legalese displayed during the operating system installation. The combination results in few people actually reading the document, and consequently, not many end users have much idea what terms they have agreed to when they continue to use Windows. Even for the non-lawyer, it's worth a once-over--various versions of the standard Windows EULA are currently available at this site. It probably won't come as much surprise that over the years, the EULA has become more and more restrictive, and the provisions coded into the operating system to enforce compliance have become more complete. As of this writing, it's necessary to contact Microsoft and provide them with personal information in order to activate for use any new copy of Windows (special provisions are made for mass-installations by corporate users). The concern over piracy and the push by Microsoft to move its software revenues over to a subscription based model (Software Assurance) will continue to drive Windows licensing issues to the forefront of this debate.
Linux advocates tout it as a more open alternative to the ever increasing say that Microsoft has on how it is that you use your computer. If you don't want to have to worry about how many people can connect to your computer at once, if it makes you a little nervous that you have to pay for upgrades before they are released to have any right to them, if you don't want to have to call up some impenetrably accented guy in India and give your life story just so your computer won't quit on you at midnight, Linux has a powerful appeal.
Beyond the simple factor of having more legal rights to what is running on the computer that you paid good money for, there is the added attraction of not having to worry over-much about your compliance to those rights. Linux has a license of its own that has its own set of restrictions. But, since there is no corporate entity behind much of the code so licensed, and because most users are not even in a position where it is possible for them to violate the few restrictions, ensuring compliance is much less difficult. As an added bonus, the Gnu General Public License (GPL) is written in very readable language, even to non-lawyers, making it much easier to understand what you can and cannot do. In contrast, I once attended a conference on Microsoft's SQL Server 2000, where three different presenters gave three completely different interpretations of the practical application of the same license agreement. All three presenters were Microsoft employees. The implication is that it doesn't matter if you read the Windows license or not--it will be up to lawyers and the Business Software Alliance (BSA) to determine whether you have violated the agreement or not. The threat of an investigation and resulting fines demands attention from anyone using Windows, but even best efforts may not suffice to protect from an expensive and time-consuming process if an angry former employee decided to make an anonymous tip.
For any business with more computers than can be counted on one hand, the licensing advantage that comes with Linux is real and substantial.
There is, however, some remaining risk of litigation. The development model for Linux has been extraordinarily lax in vetting the legality of code submitted for inclusion. Technical merits have typically had supremacy over legal ones in the Linux world, and this is resulting in a number of claims against both organizations that distribute and support Linux and against end-users of the software. As of this writing, the cases have not been ajudicated. The vulnerability, however, has been clearly demonstrated, if not the merits of the specific cases. The current allegations may well be spurious, but until the murkiness over the origins of the source code are completely cleared, the Linux licensing advantage will not be complete.
As with feature comparisons, this metric can be rather meaningless without specific comparison of the exact sorts of performance that you are interested in. It's worth noting, though, that most of the basis of this argument revolves around the fact that Linux does not require a GUI to run--thereby freeing up a considerable amount of horsepower and resources on the computer it is running on, which would otherwise be required to produce and manage all the pretty pictures on the screen that make up a GUI. If your requirements specify a GUI, it's time to test--Linux will not have any automatic speed advantage over Windows in such a situation.
However, in all situations, due to the open nature of the system, it can be stripped down more completely than a Windows system in order to run specific tasks. Windows has a rather large base set of services which are turned on by default and many of which cannot be turned off without making the system wonky, which are nevertheless not directly required for many common applications. Linux is very modular, and unrelated services can be removed easily and painlessly to optimize performance for a specific task.
This argument is typically most stark when applied to servers. As a box sitting in a locked room in the dark somewhere, a server rarely has anyone looking at its screen, and it's an easy argument to make that resources involved maintaining a GUI on such boxes are a complete waste of horsepower. The numbers tend to bear this out--on identical machines, running comparable applications performing identical tasks, properly configured Linux will just about always outperform properly configured Windows.
However, very few organizations, especially small to mid-sized ones, ever really push their existing capacity to such extremes. While it may be more efficient to run Linux in a technical sense, discernible differences will be few. The only real advantage to this performance benefit may be the ability to keep old hardware in service longer than would otherwise be possible, since even relatively old computers can perform acceptably as Linux servers.
The plain fact of the matter is that no operating system is secure out of the box (with the exception of OpenBSD but that's a debate for another day) and that securing an installation is a unique effort for every single one. The claims by Linux advocates that Windows is insecure cuts very close to the line of spurious name-calling, or at least close to a horrible double-standard. Either Linux or Windows can be insecure; it largely comes down to what measures you take to secure them.
The presumptive conclusion to this might be that the Linux advocates are correct--new vulnerabilities in Windows components are found, exploited, and heavily publicized on nearly a weekly basis. Some of the worst breakdowns affecting the general population of Internet users ever have been the result of security flaws in Microsoft products. The problem has been extensive enough that the federal Computer Emergency Readiness Team (CERT) has recommended against using Microsoft's Internet Explorer, a core component of the Windows operating system. Given all the fuss and publicity, it might seem as if this allegation is a slam-dunk for Linux advocates.
The truth is more complicated. In fact, there are nearly as many security flaws discovered in Linux as in Windows. The mitigating effects that prevent these from becoming as widely known are nothing to do with the underlying technology. The population of malicious coders who exploit these flaws are more inclined to attack Microsoft's platform, for one thing, and for another, the limited scope of Linux deployments overall keeps the few exploits released from becoming widespread. The more Linux systems that are deployed, the more likely this state of affairs is to reverse.
The remaining argument is that Linux flaws are found and fixed more rapidly than Windows flaws. This appears to not be the case anymore: a recent Forrester research report indicates that Microsoft has cleaned up its act and releases patches as rapidly as anyone these days. And in fact, most security problems are fixed by the manufacturer prior to the release of an exploit--but few users apply patches regularly and are vulnerable nonetheless.
All of this points to the conclusion that the security argument is also something of a chimera. Either Windows or Linux can be deployed securely by reasonably skilled technicians.
The conclusion is that nothing is cut and dried in the Windows versus Linux debates. However, to demand a stark conclusion to such a question is a bad way to look at the situation. The fact that no clear choice emerges may be seen as a negative by technology decision-makers under pressure to chart a course for their organizations, but the fact that there is not a clear choice should imply that there are multiple correct choices.
The debate is overblown, from the perspective of a disinterested third-party. The real message to be taken from it is that there are alternatives available on the solutions market now, and some diligent examination can result in a far better deal for many organizations than simply hopping on the bandwagon of the hour. A knee-jerk transition to Linux for its perceived strengths can be as costly and disastrous as a poorly thought-out Windows migration. Staying with Windows through the mandatory upgrades of Software Assurance can be vastly more expensive than the product is worth. These situations require some diligence, but because of the alternatives, they are no longer the tar-pits they may have been in the past.
Having worked with and examined both operating systems from the perspective of the small and mid-sized business IT function, my general recommendation is that businesses which are already running Windows should continue to do so, particularly those with fewer than ten computers. Any business using specialized software that only runs on a specific platform will be largely restricted to that platform in any event (although there are increasing options in this area for running programs on platforms they were not originally coded for). Mid-sized businesses might see some good cost savings with relatively little overhead impact by transitioning some of their servers to Linux. Any business with a relatively limited requirements for software interaction (for example, anyone who needs only e-mail or word processing functions) might also benefit from moving desktop users to Linux. Any business with technicians who are only capable of working with Microsoft based platforms should be leery of transitioning to Linux--retraining and the cost of mistakes may more than erase any license savings. Businesses that are just starting up or which are faced with major upgrade requirements should take a careful look at Linux and consider implementing it across the board. There will be as many issues with the average Microsoft upgrade or installation process as with a complete transition, and avoiding becoming locked into the new Software Assurance licensing scheme (where you must pay for the cost of product upgrades as part of the initial license, but only are eligible to receive those released during a specified term--and are not eligible for any refund if an upgrade is not released during that term) has a huge up-side for the bottom-line. Even studies cited by Microsoft examining Linux TCO show a 20% average savings when Linux is implemented as the sole operating system when building out a new organization from scratch.
In short, take this debate and use it to your advantage. Examine your alternatives and make your decisions based on the facts of your situation, not the latest spin in the media. For anyone without any stake in this other than a basic interest in efficient use of resources, this is an opportunity.
http://www.michaelhorowitz.com/Linux.vs.Windows.html
A very good feature to feature comparison and explanation--highly recommended for anyone trying to wrap their brain around the issue for the first time.
http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2907876,00.html
A meta-explanation of TCO study methodology
http://techlibrary.wallstreetandtech.com/data/rlist?t=busofit_10_10_10_22
Collection of TCO studies, not exclusive to Linux or Windows
http://www.dmreview.com/editorial/newsletter_article.cfm?nl=bireport&articleId=1002389&issue=20014
TCO study--Linux wins!
http://www.microsoft.com/windows2000/migrate/unix/tco.asp
TCO study--Windows wins!