The very nature of virtualization makes it unique in that it adds a barrier between the traditional hardware and operating system layers. By very definition, virtualization creates an operating environment on the host hardware that allows for complete customization and allocation of resources, regardless of which operating system is installed. It is not uncommon to have several different operating systems reside side by side. In fact, recently even Microsoft opened their proprietary Azure cloud platform to support Linux builds.
But since virtualization cares very little about the OS that runs within the hardware, where does that leave cloud applications? The new flexible nature of clouds and the ability to develop applications that reside or connect directly to the hypervisor through APIs just adds to the decline of necessity for operating systems. For example, if you leverage an application development platform that integrates solely with the hypervisor, with no interaction with an OS, why bother making it compatible with Windows, Unix, Linux, IOS etc? The computing power required for drivers, OS integration, and even just the extra resources that are required to run the OS are essentially wasted. It also causes developers to create applications that support specific OS environments, and often create more work if they must support more than one. So why do we need these OS layers in the cloud?
One theory is that until creating paravirtualized applications (applications that leverage the virtualized environment by plugging in directly to the hypervisor) becomes standard practice, we will still rely heavily on traditionally virtualized environments. This is because application developers are familiar with writing applications that run inside an operating system and leverages the system’s traditional connections (driver, network, resources) to perform. Until there are more developers whom focus on writing applications for cloud platforms such as Azure, Amazon and vCloud, we will still see a heavy dependence on OS installations on virtualized infrastructure. However, with the migration of organizations to developing applications for mobile platforms such as iPhone/iPad and Android, there is naturally going to be a continued evolution to writing applications that run independent of the OS and plug directly into the hypervisor. There are some great resources available for coders who are interested in learning how to develop applications for virtualized environments, including several forums for development.