Could Hypervisor Replace the Operating System?
I think we are finally going to get the hardware vendors to build hardware support; we are working with a number of companies on that, and that's going to be a long-term process. We now have companies providing hardware support from the CPU side, and we have them working on memory support from the hardware side and also the I/O devices. But [hardware support for virtualization] is still in its infancy in terms of being deployed widely and designed for commodity hardware. The people in our group here that work on the low-level hypervisor have pretty good job security for a while, I think. The interfaces may have matured, but the underlying hardware is changing around. It's becoming friendlier to virtualization and better able to support it.Will the hypervisor eventually replace the operating system? Clearly, the answer is no-the hypervisor is not going to get rid of the operating system. The hypervisor that we are exporting is still a pretty low-level abstraction. Most programmers would much rather have a hierarchical file system that they can deal with instead of a raw disk, or the sort of raw memory of a machine versus the kind of nice virtual memory that we get on a modern operating system. Clearly, you want to have some kind of operating environment that makes that level of interface nice for the application that is going to be programmed for it and do the useful work. I think the error of the one operating system that will be used for everything-[where] you buy a machine pre-installed with an operating system, and that operating system has to be as general and supportive of anything you might to do with it-is going to go away. Now, the operating system will be chosen by the applications. Does VMware see its software getting in the way of the spot that Microsoft has traditionally owned-the spot between the hardware and applications? If I were the incumbent operating system maker or a Linux kernel developer or a Microsoft kernel engineer and I had been sitting directly on the hardware, would I want another layer shoved underneath me? And, by the way, that layer is going to make all the resource management decisions of what hardware I get. The answer would be no. It's sort of human nature not to oppose that. Unfortunately, [operating system makers] have been kind of stuck with the fact that they have millions of lines of code ... You could probably do something that you wouldn't need to have this layer behind, but I think it's been amply proven that once you have software as complex as a modern operating system environment, it's really hard to change it in any substantial way, even with the resources that Microsoft or the whole open software community have. [If you asked someone now] how would you construct an operating system? They would surely start drawing a picture and say, 'Well, at the lowest level, you would put very primitive services and everything needed to trust, and, on top of that, you build this sort of layered birthday cake ... I think this is an incredibly fortuitous way we can switch to a much better structure and make it really highly compatible and sort of evolve into it, rather than come up with a new operating system environment that you structure better but that everyone else has to port to and build software for.
I think a lot about interfaces and implementations ... The nice thing is that once you know about interfaces, you can change the implementation underneath. Our vision of the data center is that you can buy a brand-new box and it should be able to drop in and run all the old workloads and the other stuff that is running in the data center.