GeodSoft logo   GeodSoft

Linux, OpenBSD, Windows Server Comparison: Total Cost of Ownership

In a rational world, Total Cost of Ownership, TCO, would be the primary method of determining what systems were purchased. All the factors that contribute to the actual costs of a system from initial licensing costs, to formal training costs to time spent by IT staff troubleshooting problems and even estimates of the time staff spend figuring things out and training themselves and each others would be included.

Platform choices are rarely made on TCO estimates. There are simply too many factors to account for and many are too difficult to calculate with any useful degree of accuracy. Sometimes platform choices are not explicitly made but are simply the result of following the path of least resistance. This means staying with what you have, where you can, and buying servers to support specific systems without regard for the overall infrastructure. When platform choices are made explicitly, they are not likely to be made on careful TCO calculations, but rather on gut feelings about the relative importance of the various factors discussed previously, and how a platform lives up to expectations of those factors regarded as most important.

One factor may be more important than any of those discussed so far or subsequently. This is simply that Microsoft is perceived to be the dominant player in major sections of the computer industry and that there is no need to justify any decision to go with a Microsoft selection. Any other choice needs to be justified but not Microsoft.

When examining servers, one wonders by what possible combination of costs could Windows servers offer a lower TCO than Linux or OpenBSD servers. The absolute minimum starting license cost for any Windows 2000 server is about $700 and it climbs rather quickly for almost anything other than development use, depending on how many client connections are allowed and what server applications are used. Then there are license management costs, which are not trivial. License management is a nuisance for anyone who must deal with it, and cannot be ignored given Microsoft's recent history of forcing license audits on its customers. If you haven't kept adequate records, it may even be necessary to repurchase products that have already been purchased before. Corresponding Linux and OpenBSD costs are zero though you may purchase media to simplify installs or obtain supplementary products not part of the base OS.

Moving to security, Linux is more secure and OpenBSD much more secure in a default install than any Windows system. Windows can be made more secure than its defaults but it is a labor intensive process, and while it's relatively easy to make Linux and OpenBSD much more secure than the defaults, the more secure you try to make Windows, the more labor intensive the process becomes, and the less Window's like the result is. TCO begins to stack up against Windows.

Regarding reliability, there is no contest. Given normal installs by typically trained administrators not working for large organizations, with the facilities to thoroughly test and standardize installs for reliability, Windows systems are much less stable than Linux or OpenBSD installs. The more Windows systems are asked to do, the less stable they will be compared to UNIX counterparts, performing a similar diversity of tasks. Troubleshooting unstable Windows systems may be the most labor intensive task, for small to medium size IT staffs. TCO stacks up further against Windows.

When we get to ease of learning, we do find an area where Windows servers have an advantage. If you must get some new service running in a minimum of time and are willing to do this without really understanding what you are doing, then Windows has an advantage. If you know of a suitable Windows product, you can buy it, possibly even downloading it from the Internet, and if things go typically, it may be installed and working in minutes, with no real knowledge of how the product works or what the install may have done. As an infrequent, emergency expedient, this may be acceptable, but as a general method of operating servers, it's not professional and can't be called managing them. Following whatever emergency required such a hasty install, the installation should be examined, especially for security implications. It may be appropriate to remove and reinstall the product with different settings.

I don't believe there is a significant Windows advantage in this regard. The advantage may be mostly a matter of perception, i.e., installing Windows products without understanding them is almost taken for granted. If you know that a particular Linux or OpenBSD package contains a service or required function, there is no reason the appropriate "rpm -i" or "pkg_add" command could not be issued as easily as a Windows install. Likewise, it should be possible to focus efforts on the absolute minimum necessary to get the new product to run, without really understanding it. Still, once one is forced to resort to using documentation, it's always seemed normal to me, to use that documentation and follow pointers to related documentation to understand what a product does, how it works and the range of available options, rather than limiting oneself to the barest of mechanics necessary to make the product work.

Generally though, it's clear that UNIX systems require more up-front learning effort than Windows systems. In the long run, this is more than paid back, as the experienced UNIX administrator can do so much more than a Windows administrator.

The only environment where there would be significant UNIX learning costs, is one that has no UNIX system or experienced administrators, and new UNIX systems are brought in and existing staff learn on the job. Otherwise there will be UNIX machines in place that perform functions, and staff that manage them and presumably (hopefully) know what they are doing. If there is staff turnover or new staff are added who are expected to work with the UNIX machines, they will presumably posses appropriate UNIX skills. Highly skilled UNIX staff might be hired to supplement UNIX skill sets that are perceived to be weak, but otherwise new hires would be expected to posses necessary skills to allow them to take over machines that were already operational. In other words, at least the more routine functions should already be automated and new staff would be required to maintain and extend existing installations, not set up entirely new machines with no experience or existing standards for guidance.

When I played a major role in selecting a new association management system that ran on AIX, I'd never seen a UNIX prompt prior to this acquisition, no staff had any professional UNIX experience, and no new staff were hired to support the machine. There were of course learning and training issues. The application vendor provided some support including a two day training session for all IT staff. We chose 7 x 24 technical support from IBM as our primary support method. My primary responsibility was oversight and testing installation of the new management system, but the AIX machine was also my responsibility, and I set policies and directed operations on it. There is no question that my knowledge of UNIX system administration was not systematic, because there were many things that UNIX administrators would typically know, that I never had to deal with. Some things were set up adequately when we got the machine, and I simply never dealt with these. I did make security changes and was able to automate all routine functions which has been discussed elsewhere. Except for web related data exchange that came later, these were all done in approximately a two years.

My initial exposure to Windows NT and NT servers was no more systematic than AIX. I started with NT workstation in early 1996 because I needed a stable desktop system. I went from Windows 3.1 to NT 3.51 minimizing interface adjustments. We got an NT server in mid 1996, but I didn't do significant work on it until early 1997, when I upgraded to NT 4 on both systems. I had to move a web site from a remote Sun system with Netscape, to NT with IIS. The old site was mostly static but had a moderate amount of CGI content. One of the main reasons for moving was to achieve a high degree of integration between our member database and the web site. The new site thus had much more CGI content. Different member types were to have selective access to various parts of the system based on member codes. Members could register for private parts of the site using Perl scripts which called the Windows API to create users and add them to groups. In some ways my involvement with NT was much closer than AIX. In both cases, whatever I did was driven by needs to get an application system working and keep operational the server on which the application depended.

It two years on AIX, I had most routine functions automated. Whenever a problem was encountered, it was dealt with and disposed of. In contrast, after two years of experience with NT server (3 years NT total) I was starting to feel the first real frustrations with NT's limitations and troubleshooting problems that seemed to have no solution. AIX involved a form of culture shock, which NT never had because of the interface similarities to what I'd known before. Both systems required significant amounts of learning. With AIX, the only obstacles were my own limitations. With Windows, after a level of knowledge was achieved, there didn't seem any where to go. Large parts of what I have accomplished on Windows systems, has been a result of bringing tools and techniques I learned in the UNIX world (Perl, the MKS Toolkit, and latter the Cgywin tools) to Windows.

Based on significant personal experiences with both, the real usability costs of Windows servers are much higher than UNIX servers. Windows has an ease of learning advantage for the novice but that is quickly lost as experience is gained and ease of use becomes more important.

Window's greatest strength is none of it's technical features but the fact that there are more applications available for Windows than all competing operating systems. It's worth noting though that Windows is not a unitary market and that there are many Windows products from the 95 / 98 / ME family that are not ready for 2000 let alone XP.

Application availability can be figured into TCO. If a system doesn't have the applications you need, then you figure TCO by comparing the cost, including time lag, of custom built applications on the system without the applications, to the cost of commercial or open source solutions on the systems that have them. Custom building will normally be much more expensive. It's likely to be so much more expensive, that it will be more than all other costs combined. Typically then, if one system under consideration has the applications you need and another does not, the latter needs to be eliminated from consideration.

Thus if I'm right about costs, if Linux has the necessary applications, then it will be much cheaper than Windows server systems because it wins all the other cost comparisons. If the necessary applications are also open source, then Linux's cost advantage is likely to be compounded. If Linux does not have the necessary applications, the choice would normally go to Windows or another commercial system.

By nearly every technical measure, OpenBSD is superior to Linux but it's hampered by limited application availability. Because less is installed by default, adding products to OpenBSD may require more work because necessary infrastructure products may also need to be found and installed. For those environments with modest application needs, if OpenBSD does meet your server application needs, it should be considered.

Microsoft Licenses and Non Responsibility

One of the reasons sometimes given for going with commercial solutions is so that there is someone on the other side, the supplier, who can be held accountable. While some custom software development or installations may result in contracts that actually give the buyer some leverage over the supplier, this is not generally true of shrink wrap software and you can be sure that Microsoft licensing agreements assure that you have no meaningful recourse if you have problems with their software. Their "warrantees" amount to saying that you as the customer are solely responsible for determining the appropriateness of the software to your environment and all consequences of its use. Microsoft is not responsible for anything, even clear defects in the software. Good luck holding Microsoft accountable for anything.

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.