[vox-tech] definition of a virtual machine

Peter Jay Salzman vox-tech@lists.lugod.org
Mon, 31 Mar 2003 16:30:49 -0800


begin Michael Wenk <wenk@praxis.homedns.org> 
> On Monday 31 March 2003 12:39 pm, Peter Jay Salzman wrote:
> > can someone tell me if this is a formally correct explanation of what a
> > virtual machine is?
> >
> > pete
> >
> >
> > A "real computer" provides an operating system many things, including a
> > CPU, I/O channels, memory, a BIOS to provide low level access to
> > motherboard and I/O resources, etc.  When an operating system wants to
> > write to a hard drive, it communicates through a device driver that
> > interfaces directly with the hardware device memory.
> >
> > However, it's possible to give a program all the hardware resources it
> > needs.  When it wants to access a hard drive, give it some memory to
> > write to.  When it wants to set an IRQ, give it some bogus instructions
> > that lets it think it set an IRQ.  If you do this correctly, then in
> > principle, there's no way for the application to know whether it's
> > really accessing hardware or tricked by being given resources which
> > simulate hardware.  A virtual machine is the environment which tricks
> > applications into believing they're running on a real computer.  It
> > provides all the services that a real computer would provide.
> >
> > VM's were used initially in the 1960's to emulate time shared operating
> > systems, but these days we use them to run software which was written
> > for foreign operating systems, or more commonly, an entire operating
> > system.  Because of the nature of the VM, the foreign OS can't tell the
> > difference between operating in a VM or in a "real" machine.
> > _______________________________________________
> > vox-tech mailing list
> > vox-tech@lists.lugod.org
> > http://lists.lugod.org/mailman/listinfo/vox-tech
> 
> 
> Well, I can't find my old CS book, but I prefer the Java definition for a 
> VM: 
> 
> "An abstract specification for a computing device that can be implemented in 
> different ways, in software or hardware. ..." 
> 
> It goes on to more java and jvm specific information.  I think the 
> important keyword is abstract.  You're definition is more specific, but 
> a VM can describe just about any computing device, and arguably 
> every computing device may not have the components you listed.  
> 
> Mike

unfortunately, that definition doesn't really talk to me.   :(

pete

-- 
Fingerprint: B9F1 6CF3 47C4 7CD8 D33E 70A9 A3B9 1945 67EA 951D