In a not so long ago job assignment I spent a little time learning the 
innards of KVM, qemu, and virtualization technology in general.

The virtualization environments are going to do a good job running your 
instructions on real hardware.  All modern hardware has support for 
doing this, sometimes even very sophisticated support for shadow page 
tables.  (Luckily DOS doesn't need all of that.)  Things get more 
complicated if you run a privileged instruction; that requires an assist 
from the VM for security reasons.

When a VM blindly emulates hardware things slow down.  For example, the 
AMD PCNet emulation that VirtualBox and VMware provides requires both of 
those VMs to sit and emulate each and every I/O operation from the 
packet driver or networking software.  The same thing goes for IDE 
emulation, and any other hardware emulation.

The better virtualization environments realize this and use 
paravirtualization.  In a nutshell, the guest operating system runs 
special device drivers that know how to hit magic buttons in the VM.  In 
the case of the network adapter, instead of doing a whole bunch of 
privileged I/O operations to send a packet a paravirtualized driver can 
press a magic button on the VM, telling it where the data is and how to 
send it.  The partitioning support on all of the big IBM Power machines 
use this trick.  When VMWare provides special drivers to Windows for 
file sharing and screen handling it is doing the same thing.

Ultimately we're going to need to have DOS device drivers that know how 
to interact with the various VMs.  In the case of VirtualBox, that 
should not be a large problem - the interfaces are in the open source 
code.  For VMware and closed source VMs it might not be possible unless 
the interfaces are published.


Mike



------------------------------------------------------------------------------
uberSVN's rich system and user administration capabilities and model 
configuration take the hassle out of deploying and managing Subversion and 
the tools developers use with it. Learn more about uberSVN and get a free 
download at:  http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to