Various embodiments of the present invention are directed to bimodal
virtual device approaches (that is, "bimodal devices"). In certain
embodiments, the bimodal device is a virtual device that is primarily
based on a real piece of hardware to provide a broad degree of
compatibility with software running in the guest environment (similar to
the hardware device virtualization approach). However, to overcome the
problem of poor performance that plague hardware virtual devices, these
embodiments also provide an idealized "high-performance mode" that is not
found in the original hardware-based device. Software drivers (and other
software) developed for interacting with the original hardware device and
which are unaware of (and unable to use) the high-performance mode will
continue to use the "legacy mode" (hardware virtualization), while
enhanced versions of guest software will be able to recognize and utilize
the high-performance mode (idealized virtualization).