l i n u x - u s e r s - g r o u p - o f - d a v i s
Next Meeting:
July 7: Social gathering
Next Installfest:
Latest News:
Jun. 14: June LUGOD meeting cancelled
Page last updated:
2003 Mar 31 17:01

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] definition of a virtual machine
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] definition of a virtual machine

A virtual machine is essentially an idealized picture of
how a digital computer and to some extent operating system
works. You can think about it as an extension of the BIOS 
int 10h or 21h services that provide the same interface to 
hardware. The underlying hardware may be different, but
programs using the BIOS services don't have to be changed
to operate.  The analogy can be extended to the operating
system you are running or the libraries that you link into
your programs.  

The "advantage" that something like the JVM provides is
platform independence because it translates the instructions
of the program into code that runs on the machine.  With
the JVM you can run the code on another architecture without
having to recompile the software, something that may be 
impossible outside of the open source world :-).

The "disadvantage" is that code has to be translated and 
requires some level of processing to decode and also places
the programmer further away from the machine.  This distance
may translate into programs that are written poorly for the
target architecture.  That and it may be impossible to 
get certain things done because you really need access to
the hardware, which is can be a big issue with embedded


On Mon, Mar 31, 2003 at 04:30:49PM -0800, Peter Jay Salzman wrote:
> 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
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech
vox-tech mailing list

LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Sunset Systems
Who graciously hosts our website & mailing lists!