Microsoft is working very hard on Windows 8 - its first operating system that looks like it can compete with today's tablets (unlike Microsoft's previous endeavors into the tablet space - dating back to the early 90's). The genius behind Windows 8 is not it's touch interface but its ability to act and behave like a tablet operating system when it has to while still being a pure PC operating system.
This is a tremendously important aspect because it allows Microsoft to simplify the development of Apps over time. Instead of maintaining two codebases for the same App (one for desktop and the other for tablets), the developers only need to alter the UI's. Compare this with the next best offering, which is Apple's OS X and iOS - both are based on Mach kernels and both use an Objective-C runtime system but because the API's are somewhat different and the runtime system is far more constraint on the iOS devices (sandbox, limited filesystem access etc.), it is much harder to keep the same code base.
Android is based on Linux with most applications written in Java (the resulting Java byte code is not compatible with a standard Java run-time environment as it is optimized for mobile platforms) which means programmers will never be able to bring their creation easily to the desktop, unless they create two separate code bases.
Another interesting development is that Microsoft will be porting Windows 8 to multiple processor architectures to allow for programs to run on Arm and X86 architectures. Apple has been doing this for years - with considerable success. In fact it was this ability of OS X that made it possible to port it to the Arm architecture. This flexibility is becoming increasingly important because Arm chips have a clear advantage over the legacy x86 architecture when it comes to power / per watts because of their much simpler RISC based design. With Apple's A5 and the upcoming Nvidia Tegra 3 (5 core Arm architecture), Microsoft is consciously making the step towards a new chip architecture for the first time since the 1970's (although it should be noted that Microsoft has flirted with Mips in the past)
Why is all this important? Our smart phones will become our personal computers in the near future. We will carry our phones and use it as mobile computing device but when we’re at work or at home, we dock it to a docking station and will be presented with a full screen, full PC operating system. It is that ability of Windows 8 hat Microsoft is banking on. Neither Google nor Apple can currently go this path without significantly retooling their operating systems.
Apple could in theory do this over time by aligning some of the API's between iOS and OS X and by trying and leverage its Xcode development environment to assist developers in creating two versions of the same application.
Google could also in theory provide the same Java runtime environment for a Linux distribution. But instead of doing that, Google should consider dropping its efforts with Chrome OS (its browser based operating system) and instead focus on making an Android version for the desktop. Luckily for Google, it has based its Android UI mostly on a Java derivate - which means it does not really have to worry about chip architecture the way Microsoft and Apple have to. All Google needs to do is adapt its existing Android Linux kernel for the X86 architecture (which it probably already has given that this is Linux’s origin) and create a new set of Desktop API’s based on the same Java framework. Even if the adoption would take several more years, it’s a much better investment than Chrome OS. Of course, the new Android Desktop operating system would have Chrome as default browser installed and thus all the current Chrome OS cloud offerings would be retained.