I’ll never convince die-hard fans of Linux of anything pragmatic or practical. Idealism often gets in the way of stepping back and thinking hard about the cons of one’s passion. That said, I will give it a swipe.
Linux is a grand set of applications and tools unified into what most people today would call “an operating system.” Taken as a single unit, a given distro can be quite stable, reliable and overall fantastic. If we were to have a conversation that (for example) RHEL was a fantastic operating system then I couldn’t disagree with the statement. For the niches it fills, it is quite possibly the best. Now, I’ve not played much with other enterprise versions of the various Linux distros, but I would hazard a guess that under pressure they show marked reliability. Being open source, if you hire enough programmers and pay enough stupendous amounts of cash you can make a given Linux distro dance around a flag pole. That is an obvious pro when we talk about “Linux.”
The con really revolves around the fact that “Linux” is not an operating system. It is a catchment term used to describe a series of operating systems that happen to share a few common roots. Now it is blasphemy to discuss this issue with The Faithful, but the fragmentation of the Linux community is its greatest weakness. The LSB project may one day be its salvation, but even LSB 4.0 doesn’t reach far enough, and there is still too much inter-distro infighting and politics to truly hope that real honest-to-god inter-distro interoperability might one day occur. This is the elephant in the room.
Regardless of the how and why it got where it is, Windows has a hugely prevalent skill base of users and administrators. It is (relatively) easy to use, the tools are (usually) laid out in a fashion that makes sense to non-programmers and (yes, dear friends) the operating system is robust, stable and reliable. In virtually all cases a windows program, driver or what-have-you that you buy in a store, download off the internet or otherwise acquire Just Works on a given windows system. It certainly has not always been the case, but (let’s ignore the abomination of Vista for a moment,) Microsoft has come a long way in the past decade with this “windows operating system thing.” Their branding and partnering exercises, certification procedures and other such programs have ensured that this massively complex spiderweb mishmash of ancient incomprehensible code and new, sleek revised hotness somehow works on an unbelievable diversity of equipment. What’s more, Aunt Tilly (or that pointy haired boss that went to a seminar) can get a program “for windows,” pop it in, and it goes. (I acknowledge there are always exceptions, but the % of these are pretty small.)
Let’s contrast this with “Linux.” What flavor of Linux are you running? Does that particular app/program/what-have-you come in the right colour packager for your OS? What dependencies does it rely on? Does your system have the right major version number dependencies? Do you have to shove that package through alien in the fading hope that it will comply? Are you reduced to compiling from source? Does the same program with the same name that you rely on in one distro even behave in the same manner (and respond to the same commands in the same way) between distros? (I’m looking at you, vi!) What about administration and management? Do the basic administration tools resemble each other between distros? Do they even use the same terminology for the same things? In too many cases, the answer to almost all of the above is something like a strangled choke followed by the sound of a sysadmin voluntarily plummeting to his doom several stories below.
So this means Windows isn’t competing against “Linux.” Windows is competing against RHEL, SLES, Ubuntu Server LTS and many other operating systems that share a Linux foundation. All of these various distros are busy competing with (and waging periodic “nerd-rage purity wars” against) each other. When a Windows house looks at Linux, they don’t know where to start. They might find a nice Ubuntu appliance they like, but huge chunks of the learning they did on RHEL is now invalid and they have to learn this new OS from scratch.
For some organization that decides to go whole hog on a given distro, say a stock exchange, bank or what-have you then they are picking an operating system based ont eh individual merits of that operating system. They are picking RHEL because RHEL kicks ass or SLES because of some other requirement. They are not choosing “Linux.”
Microsoft is perfectly aware of this. They don’t have to compete against “Linux.” They have to compete separately and individually against each of these distroes. None of these distroes have an office/productivity stack worth mentioning, nor a client operating system that is going to do them any real harm. They are competing on the server front and frankly...their offerings in that regard are pretty damned competitive. Unless and until a Linux distro emerges winner, and starts to build a truly competitive Office/productivity line of apps and servers combined with something that actually gives exchange, AD, MSSQL etc. a run for it’s money then MS can just sit back and watch the various Linux distros scratch at eachother. It doesn’t need to put much more time and effort beyond “vague FUD” into it; “Linux” harms itself far to effectively.
That said, if “Linux” ever got its act together and built a “reference LSB distro,” one to which all other Linux distros were guaranteed to be compatible...MS would sit up and take notice. Suddenly real ISVs would have a target. The industry specific software and applications that are what keep the Windows platform alive would have something to code to on the Linux side. One set of rules, one file system structure, one packager, one everything. Write to one reference distro, support against the one reference distro and that’s it. One set of dev tools, one set of mandatory base applications with one set of mandatory default configurations. Code your application for “Linux” and receive the happy knowledge that no matter the flavour colour of “purity” of the distro, you app will behave exactly the same. This is /the/ barrier.
Solve this, and you would see apps pop up on Linux from Photoshop to “Dave’s downloadable home movie maker.” Fail to solve this, and Linux will get steamrollered by companies like Google who decided “screw the local OS, we’re putting it all in a browser,” Microsoft who can say “code it this way and it will work on 90+% of all computers every where,” or potentially Intel which may have enough force to make MeeGo the “standard” and push some of these other distros unwillingly into compliance or obscurity.
So does “Linux” matter to Microsoft? Is it “arrow head stuck deep inside Microsoft 's flesh causing bleeding and pain (moderate so far but it is not going away)”? No. It’s like a colony of ants living on your lawn. You wonder periodically if they might be able to cause some damage to your house because of their numbers (are they carpenter ants you ask,) but you realise if they get uppity you can throw so white dust on them and kill enough that it will be a while before they are back.
Microsoft is far better to be worried that Apple might get uppity and decide to make a place for the servers or office/productivity markets. They may be control freaks, but in corporate IT that is a mark in their favour, not against them.