Tuesday, January 10, 2006

x86 Virtualization: Keep moving

The virtualization process on the x86 platform has really taken off in the market. The best part is that this process has taken place in both directions.
The hardware virtualization process has been moving at a fast pace (especially in development environment, production environment seems to be a different story or may be I do not know the story) with availability of both vendor products like VMWare ESX, Microsoft Virtual Server and opensource products like Xen 3.0 (on Intel IVT and AMD's Pacifica chips - still looking for a big yes from the community on whether it works). I guess when something like this becomes an important part of the development environment for a small company like mine, I think it really has moved far along.
At the same time, the virtualization has been developing from top to bottom starting with language (like Java and .NET). This means that at the moment we have two virtualization environment i.e. at the top and at the bottom with Operating System in the middle.
Isn't it time to start the virtualization process for the OS itself? The product like Azul seems to have taken some steps toward that but being language dependent and properitory designs, they do not fit the bill of OS virtualization. Is this time to really start thinking about completely moving away from the monolithic kernels like Microsoft Windows and Linux and start adopting the Micro-kernel architecture (or that version of existing OS) so that people can pick and choose the components to build the environment such that if you are running servers, you can remove all the User Interface components from the operating system without the need of recompiling the kernel of the Operating System. This way you can pick and choose the components that you need to build the OS environment and hence different components for each of the part of the OS so that systems can leaverage built-in features of chips to make a smaller memory and storage footprint and more efficient systems.