Today, I was reading a post about how the world would look like if Microsoft disappeared tomorrow. One of the comments on this post said:
With fast processors with virtualization Microsoft should abandon their code base entirely and run legacy software in virtualization. The Windows code is a “dead end”.
I cannot agree more on this.
Windows has become more insecure and bloated over time. Its complexity has increased almost exponentially, but some of the engineering decissions that were made in the past turn to get more and more expensive today, like the hundreds of security vulnerabilities that have been undisclosed this year. Simply said, Windows wasn’t architected with security in mind. Windows was architected as a GUI-based operating system, much like the original Apple operating system or GEM were. I think the time has come to ditch it hard and start all over again, with a cleanly designed system, done from the ground up, with security in mind, that leaves all useless features off in order to keep complexity under control. That’s precisely one of the things that I like about most of the free, open source operating systems: the ability to do extensive customization. It makes total sense to remove components or services that are not being used in a particular deployment scenario, such as removing the Web browser and Windows Media Player software in Windows machines playing the role of servers. Such bloated code takes resources, increases complexity and uncertainty and increases the chance of somebody trying to break into the system due to a vulnerability in this unused code.
Virtualization allows you to keep all these legacy code running in a controlled, stable and static system, while being able to take advantage of more modern, customizable, secure and stable software codebase, call it GNU/Linux, *BSD, Mac OS X, Solaris or XYZ.