3

Я знаю, что они оба называются «виртуальными машинами», но в чем разница?

3 ответа3

3

Термин "виртуальная машина" - это разговорный термин в том смысле, что он просто относится к идее машины (а не к самой вещи). Благодаря этому он может относиться практически к любому программному обеспечению (отсюда и к виртуальному), которое "действует" как машина. Эмулятор видеоигры - это виртуальная машина (и на самом деле она очень похожа на работу JavaVM).

Самое большое различие между типами виртуальных машин заключается в том, что они виртуализируют и как они это делают (т.е. как они абстрагируют идею машины).

VMWare (VirtualBox/etc.) Пытается представить оборудование на хост-машине гостевой машине, чтобы гостевая машина могла напрямую использовать оборудование (например, возможность использовать USB-устройство на госте), и в этом контексте на самом деле не так много виртуализирован (в классическом смысле этого слова), так как гость сам использует оборудование. Для этого VMWare/ и т.д. больше похожи на аппаратные прокси, чем на "виртуальную машину". Программное обеспечение, созданное для одной платформы / архитектуры, будет по-прежнему работать только для этой платформы / архитектуры, независимо от гостевой / хостовой виртуальной машины.

Что касается Java, то правильнее будет сказать «виртуальная машина Java, а не виртуальная машина Java»; JVM пытается абстрагировать аппаратное обеспечение и саму машину, чтобы разработчику не приходилось заниматься такими вещами, как тип архитектуры или платформа. Программное обеспечение, созданное на Java, должно работать на любой платформе, на которой установлена правильная версия JVM, независимо от типа физической машины.

Разница между этими двумя понятиями виртуальной машины заключается в абстракции и непосредственном выполнении кода (т. Е. Непосредственно на оборудовании). JVM пытается абстрагировать как можно большую часть платформы / архитектуры / машины, чтобы сделать код как можно более независимым, чтобы иметь возможность работать на максимально возможном количестве устройств (поддерживающих Java), где контейнер VMWare / VirtualBox абстрагирует насколько это возможно, физичность машины, чтобы вы могли уменьшить физическое оборудование, необходимое для запуска платформы, хотя у вас все еще есть те же мягкие ограничения (например, я не могу написать сборку ARM и ожидаю, что она «просто запустится» на процессоре x86 в VMWare / VirtualBox).

Есть немного больше деталей, которые могут быть объяснены в «точных» различиях между этими двумя типами виртуальных машин (больше, чем, скажем, сравнение JVM с .NET или эмулятором WINE), но это относится к проектированию систем более низкого уровня; на высоком уровне, однако, это должно помочь объяснить ключевые различия между JVM и VMWare VM.

Я надеюсь, что это помогает добавить некоторую ясность.

1

Основное отличие заключается в базовой машине. С Java это хорошо определенный специализированный чистый программный компьютер со своим собственным машинным языком (байт-кодом), в то время как с VMWare (или VirtualBox и т.д.) Представленная базовая машина близка к физическому ПК, использующему тот же машинный язык, что и настоящий. аппаратное обеспечение (x86).

0

JVM - это виртуальная машина, которую Java использует для выполнения программ на Java, поэтому разработчик просто один раз скомпилирует код, затем программа может быть запущена на других ОС и архитектурах без перекомпиляции, при условии, что Java-программа должна быть запущена JVM, которая совместим с архитектурой и ОС машины.

VMware VM - это программное обеспечение гипервизора, которое создает и запускает виртуальную машину. "Виртуальная машина" здесь похожа на цитату из Википедии:

В вычислениях виртуальная машина (ВМ) является эмуляцией компьютерной системы. Виртуальные машины основаны на компьютерных архитектурах и обеспечивают функциональность физического компьютера. Их реализация может включать специализированное аппаратное обеспечение, программное обеспечение или их комбинацию.

https://en.wikipedia.org/wiki/Java_virtual_machine

https://en.wikipedia.org/wiki/Hypervisor

Виртуальная машина

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .