Differences between version 3 and predecessor to the previous major change of VirtualMachine.
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Saturday, February 15, 2003 3:25:45 pm | by GlynWebster | Revert |
Older page: | version 1 | Last edited on Friday, February 14, 2003 2:36:50 am | by GlynWebster | Revert |
@@ -1,13 +1,16 @@
-A ''virtual machine'' is a program that executes code
designed for a different type of computer than the program
is running on. The [JVM] virtual machine for Java is the most widely used, just about every WebBrowser has one.
+A ''virtual machine'' is a program that executes ObjectCode
designed for a different type of computer than the virtual machine
is running on. The [JVM] virtual machine for [
Java]
is the most widely used, just about every WebBrowser has one.
Virtual machines are used for:
; Compatibility : Virtual machines are simple, compilers are complicated. Object code from one compiler can run on any type of machine, with any type of [CPU], providing someone's written a virtual machine for it.
-; Safety : A virtual machine can limit what the object code it is running does. In theory that Java program your web browser automatically downloaded from a webserver in Estonia and started to run won't write anything to your disk because the JVM won't let it.
+; Safety : A virtual machine can limit what the object code it is running does. In theory that Java program your web browser automatically downloaded from a webserver in Estonia and started to run won't write anything to your disk,
because the JVM won't let it.
-; Novelty : Programming languages implicitly define what a computer ''is''. If that computer is far different from a VonNeumannMachine
, then you may as well write a virtual machine for it
, and have your compiler create code for that machine. The result probably won't be much less efficient than a native code compiler, and will be far easier to attain.
+; Novelty : Programming languages implicitly define what a computer ''is''. If that computer is far different from a Von Neumann Machine (the basis of most modern CPU designs)
, then you may as well write a virtual machine for your imaginary computer
, and have your compiler create code for that machine. The result probably won't be much less efficient than a native code compiler, and will be far easier to attain.
-; Debugging : A virtual machine can monitor what the object code
it is running does. You can break out of a programming that is running on a virtual machine at any point and examine everything about the machine's state. ''(There's a x86
emulator for Linux for this purpose, anyone remember what it's called?)''
+; Debugging : A virtual machine can monitor what the ObjectCode
it is running does. You can break out of a programming that is running on a virtual machine at any point and examine everything about the machine's state. [Bochs | http://bochs.sourceforge.net/] is [ia32]
emulator for Linux for this purpose.
-; Emulation : I get to play my favourite ZX Spectrum video game on my PC. Whee!
+; Emulation : I get to play my favourite ZX Spectrum video game[1]
on my PC. Whee!
+
+----
+[1] [Ant Attack | http://sandywhite.co.uk/fun/ants/]! [http://www.wave.co.nz/~glyn/AALogo001.gif]