| Just as bytecode can be generated by programs other than Sun's 
              Java language, other types of virtual machines can execute that 
              bytecode.  A number of groups and companies have taken the JVM 
              Specifications and created their own clean-room JVMs. 
              This is allowed under the Sun Microsystems guidelines for using 
              the Java trademark in labeling the program.  Clean-room indicates that the program was developed completely 
              independently of Sun code. As long as the JVM follows the specifications, even if it carries 
              them out in totally different manner than the Sun JVM, it is still 
              quite legal. This actually allows for a wide range of implementations 
              because in a number of areas the specifications are not exact. For example, there is considerably leeway with regard to threads. 
              A JVM could create thread processes purely within the JVM, or it 
              might instead use native processes within the host operating system, 
              or even different processors on a multiprocessor system. Also, note that there are now separate specifications for micro 
              and embedded platforms and for real-time systems. For some platforms, 
              only a non-Sun JVM may be available.  Java Virtual Machines implemented in hardware are also now available. 
              In this case, Java bytecode is the machine code of the hardware 
              JVM processor. (See Chapter 23.) Below is a sampling of alternate JVMs. See the JVM 
              list sites for more examples: 
              kissme - a implementation 
                in C for UNIX and especially GNU/Linux. Features include: 
                
                  Uses native Operating System threads  Mark and Sweep garbage collector"Supports an extension to the JVM allowing persistent 
                    java, which means that the JVM allows in-memory data structures 
                    to automatically persist to permanent storage"Japhar - clean 
                room, open source implementation. LaTTe : An "Open-Source 
                Java Virtual Machine and Just-in-Time Compiler"SableVM - "portable 
                bytecode interpreter written in C, and implementing the Java virtual 
                machine specification, second edition. Its goals are to be reasonably 
                small, fast, and efficient, as well as providing a well-designed 
                and robust platform for conducting research"Alternative 
                Java Implementations - David K. Friedman and David A. Wheeler 
                - list of other JVMs.JVM 
                Implementations - Wikipedia  Latest update: Dec.10.2003 |