my understanding is that the jdk consists of JRE and JVM
JRE = JVM + class libraries
JDK = JRE + tools (like java, javac, jar, ...)
JVM mainly takes care of translating java codes to bytecode.
No. That's the job of the
javac compiler (which is implemented in Java, so a JVM is needed to run it). The JVM translates bytecode to native code at runtime, though.
However I would like to know who other than SUN Microsystem implements JVM and JDK. I can think of BEA also as one of the name.
IBM has JVMs for all of their architectures. Apple has a JVM that is based on the Sun JVM, but adapted to work well on OS X.