Every once in a while, someone sends me mail (or a pointer to a blog post) and asks “Why can’t you guys do something like that?“. The implication seems to be that Windows would be so much better if we simply rewrote the operating system using technology <foo>.
And maybe they’re right. Maybe Windows would be better if we threw away the current kernel and rewrote it using <pick your favorite operating environment>. I don’t know, and I doubt that I’ll ever find out.
The reason is that making any substantial modifications to an operating system as large and as successful as Windows is hard. Really, really, really hard. You can see this with Vista – in the scheme of things, there were relatively few changes made to existing elements of the operating system (as far as I can tell, the biggest one was the conversion from the XP display driver model to the Vista display driver model), but even those changes have caused a non trivial amount of pain for our customers.
Even relatively small modifications can cause pain to customers – one of the changes I made to the legacy multimedia APIs was to remove support for NT4 style audio drivers from winmm. This functionality has been unsupported since 1998, and we were unaware of any applications that actually used it. Shortly after Beta2 shipped, we started receiving bug reports from the field – people reported that some call center applications had stopped working. We started digging and discovered that these call centers were using software that depended on the NT4 style audio drivers. These call centers didn’t have the ability to upgrade their software (the vendor had gone out of business, and the application worked just fine for their needs). So we put the support for NT4 drivers back, because that was what our customers needed to have happen.
Windows is an extraordinarily complicated environment – as a result, it’s extremely unlikely that any changes along the line of “throw away the kernel and replace it with <foo>” are going to happen. Of course, I’ve been wrong before :).