Kaffe - Not Java
Kaffe is a clean room implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment. It has support for Garbage Collector, Debugging, Profiler, Benchmarking etc. It has been ported to multiple platforms. Among the open source VM, Kaffe is actively developed.
Kaffe is not an officially licensed version of the Java virtual machine. It contains no Sun source code and was developed without even looking at the Sun source code. Kaffe is a great choice as a base for virtual machine education and research.