Several technical and pragmatic hurdles must be overcome when virtualizing the PC platform. The traditional mainframe approach runs virtual machines in a less privileged mode in order to allow the VMM to regain control on privileged instructions, and relies on the VMM to virtualize and interface directly to the I/O devices. Also, the VMM is in complete control of the entire machine. This approach doesn't apply as easily to PCs for the following reasons.
VMware Workstation has a hosted architecture that allows it to co-exist with a pre-existing host operating system, and rely upon that operating system for device support. Figure 2 illustrates the components of this hosted architecture. This architecture allows VMware to cope with the diversity of PC hardware and to be compatible with pre-existing PC software. Currently, Windows NT , Windows 2000 and Linux can serve as hosts. This paper focuses on the performance aspects of relying on a host OS for accessing I/O devices.
The rest of this paper is organized as follows. Section 2 describes VMware Workstation's hosted architecture, its benefits and costs, and looks at the specific example of a virtual Ethernet network interface card (NIC). Section 3 demonstrates the performance of NIC virtualization with VMware Workstation 2.0, breaks down the overheads for a few different workloads, and measures improvements achieved by optimizations the data suggested. Section 4 presents several approaches for improving I/O performance beyond the optimizations described in Section 3, some of which go beyond the capabilities of a hosted architecture. Section 5 describes related work in the area of supporting multi-platform computing on a single machine. Finally, Section 6 summarizes the observed properties of the hosted architecture and draws some conclusions about this approach to I/O virtualization.