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