Java Virtual Machine
- Java is compiled to byte-codes
whose target architecture is the Java Virtual Machine (JVM)
- The virtual machine is embeddable
within other environments, e.g., web browser and operating system
- Utilizes a byte-code verifier
when reading in byte-codes. The Class Loader is employed for "classes"
loaded over the network (enhances security)
Detailed Description:
"As we said earlier, the virtual machine can be embedded within a web browser
or an operating system. Once a piece of Java code is loaded onto a machine,
it is verified. As part of the loading process, a class loader is invoked
and does byte code verification. From a security standpoint, this verification
makes sure that the code that's been generated by the compiler (or from any source)
will not corrupt the machine that it's loaded on. This is important because today's
use of Java on the Internet makes it likely that we're going to be downloading
programs off random machines out on the Internet around the world to run on our
personal machines that we're working on. We want guarantees that the code we
download will be not able to corrupt the machine that we're on. Byte code
verification takes place at the end of the compilation process to make sure
that the code is all accurate and correct. And byte code verification is
the first phase of class loading, which makes sure that it's still okay.
So byte code verification is integral to the compiling and executing of Java code."
|