The month of December has already been unkind to Microsoft. The software giant's Windows operating system and its Internet Explorer browser saw significant market share drops reported on back-to-back days. Not only was the November percentage drop for Windows the biggest in two years, but Windows market share dipped below a number where it has historically held tight: 90 percent. According to Web metrics company, Net Applications, Windows market share as of Dec. 1 is 89.6 percent. Meanwhile, Mac OS X posted its largest gain in two years, with 8.9 percent market share at the end of November.

Which is why they are missing something very important: cohesiveness. Linux, as in the GNU/Linux family of distributions, is not a platform or operating system. Linux is a kernel, the GNU userland is placed on top, X windows on top of that, and a Desktop environment on top of that. The trouble is, this does not lend itself well to being a full and integrated environment, especially when one considers the vast number of distributions all of which do various operations and configuration in different ways.
For desktop Linux, you don't have a target you can develop for known as Linux. In fact, some of the variations in distribution are significant enough they might as well be their own operating systems, compatible but in the way that POSIX-compliant systems are compatible. In other words, compatible mostly on a source level but not necessarily at the binary level. Linux is not the operating system. Fedora, OpenSuSE, Ubuntu, or whatever distribution you are running is the operating system which is built upon the Linux kernel as its foundation. The packages included with most distributions have many distro-specific patches, which can introduce difficult bugs into the system. This results in a fragmentation between what is upstream and what is in the distributions--just because two distributions have the same version of KDE, for example, doesn't mean they will behave alike or always act the same.
On the desktop side, which is what most users care about, this results in a variety of user experiences, from the polished to the not so polished. This doesn't really make it easy to support Linux on the desktop. Supporting, say, OpenSuSE on the desktop or Fedora on the desktop is easy enough, but supporting Linux in general can be a royal pain in the backside with all the differences.
This is one of the reasons I'm not sure how long of a future desktop Linux has with the current state of affairs. I don't doubt that it will persist as long as enough people care about it, but I seriously doubt it will rise significantly without some sort of guiding influence to bring all the various parts together; something that is very unlikely to happen, since by its very nature there would be absolutely no obligation to support or go along with such an effort (see LSB).