With the multitude of operating systems and versions thereof, developers have created software that provides virtual machines (sometimes referred to as virtual PCs). A virtual PC is a software-created environment that may appear, to the operating system and applications that execute therein, to have most or all the elements associated with an actual PC. The software-created environment may be so complete that the operating system and applications that execute on a virtual PC may not be able to determine that they are executing in a virtual environment.
Providing virtual PCs is useful for many reasons including debugging and supporting applications designed to execute on multiple versions of one or more operating systems, having access on a single machine to applications that are only available for different operating systems, and so forth. To execute multiple operating systems on one actual computer, a user may load a primary operating system on the computer, load software to create one or more virtual PCs, and then load one or more other operating systems that execute in the one or more virtual PCs. This allows, for example, an Apple® (or other) operating system to provide a virtual PC to host a Microsoft® operating system, a UNIX® operating system, a LINUX® operating system, another Apple® operating system, or some other operating system.
Providing a virtual PC that seamlessly and effectively provides all the functionality of a real PC has eluded those skilled in the art. This is particularly true with respect to printing functions associated with the virtual PC.