If you look at what Vista contains, as well as XP, and many new APIs, you'll immediately see that most of the recent additions to Windows now depend on a "Managed" subsistem.
Microsoft is already porting Windows progressively on this base core of APIs, and is already deprecating the Win32 API by putting its documentation far way in MSDN from develoers views. All gets modeled now after .Net and for .Net, even if it finally runs on Win32, but the dependancy of those APIs on Win32 is already decreasing at high speed.
Win32 gets progressively moved to a lower layer, and its API is now alsmost completely freezed (with the exaception of security bugs that are often solved by rewriting part of it with a managed subsystem.
This is also true for device drivers, that are now developed with mini-drivers running in user space with stronger isolation from the OS: the OS provides a generic driver that integrates all the others.
Next generation versions of Windows will run in a VM as well as the applications "plugged" into it and more easily manageable and deployable. There won't be however a revolution, like restarting from scratch from a micro kernel, instead most OS services will progressively be migrated by splitting them in several layers with less cyclic dependencies, and finally some lower layers (specific to some old architectures) will be removed when they are no longer needed to support the upper layer.
I think that Win32 is now in end of life, and usage of .Net within Windows is constantly increasing. Most applications will no loger depend on Win32 if you follow the upgrade path already strongly suggested by the MSDN documentation.
Yes, initially, there's a performance cost when porting your application to some VM, but the cost is already small enough and rapidly compensated by the fact that applications already have to run on PCs with very wide differences in terms of performance and capabilities.
So what is important? Getting the maximum performance on a single host with a single CPU core, or getting the maximum performance on a large and extensible platform with networking capabilities, that still has many unused resources that a VM could harness to offer much better scalability and better integration, focusing on user demands on the platform as a whole instead of just on a single device?
Just look at your home environment: there are now computing resources everywhere in many products. Electronic and processors are present everywhere. Why can't they collaborate to create a much more powerful platform with more versatile use and from everywhere?
The best of ZDNet, delivered
ZDNet Newsletters
Get the best of ZDNet delivered straight to your inbox



