1) Верно ли, что javac.exe - это реализация java-компилятора от sun, - это зависит от того, как любая компания / разработчик может распространять Java-компилятор в соответствии со спецификацией JVM.
2) и javaКомпилятор определяется как нечто, что переводит исходный код Java в байт-код Java, - Да, он компилирует исходный код в байт-код
3), а JVM определяется как нечто, принимающее байт-код Java в качестве входных данных, и фактически сообщает машинезаниматься вещами.- Да
4) и существует много разных типов JVM, на самом деле разные операционные системы требуют разных JVM, - правильно, для каждой ОС должна быть своя собственная реализация JVM, вы не можете запустить JVM дляWindows на Linux
5) и JVM, которая работает на Windows 98, отличается от JVM, которая работает на Windows 7?- Да
В дополнение к вашим вопросам 2,3,4,5, компилятор преобразует исходный код в байт-код для реализации JVM, чтобы понять, где бы ни выполнялась эта JVM.