Можем ли мы подделать процессор и оперативную память с помощью гипервизора? - PullRequest
0 голосов
/ 21 января 2019

Я много слышу о «Гипервизоры не являются эмуляторами. Если вам нужно эмулировать аппаратные характеристики, отличные от того, которые есть у вашего компьютера, вам нужно использовать эмулятор, а не гипервизор».

Хорошо, но вчера я видел этовидео на YouTube - нажмите здесь - где показано, как установить Win 95 на современные macOS с VMware Fusion.

Для меня странно то, что в 17:39 вы могли видеть, что Win 95виртуальная машина "Pentium Pro с 64 МБ ОЗУ".

enter image description here

Хмм!Итак, Fusion как-то подделал процессор и оперативную память, верно?Но это не эмулятор, верно?Значит ли это, что любой гипервизор может подделать процессор и оперативную память?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Когда вы говорите о VMWare Fusion, то, как это работает, зависит от того, как достигается виртуализация. Согласно википедии VMWare Fusion использует аппаратную виртуализацию, динамическую двоичную трансляцию и паравиртуализацию.

В случае аппаратной виртуализации , @Strom верен, и гостевые инструкции могут выполняться непосредственно на центральном процессоре хоста. Помимо ответа @Strom, вы можете подделать тип процессора, перехватывая и эмулируя инструкцию cpuid .

В случае пара-виртуализации вы заменяете критические инструкции вызовами гипервизора, который эмулирует инструкцию от имени гостя. Итак, вы снова эмулируете инструкцию cpuid , чтобы «подделать» тип процессора. Помните, что для этого требуется модифицированная, а следовательно, паравиртуализированная гостевая операционная система.

Наконец, динамический двоичный перевод сканирует гостевой код для критических инструкций во время выполнения и либо заменяет их ловушками в гипервизоре, достигая своего рода «живой паравиртуализации» или перевода блоки гостевого кода в эквивалентные блоки хост-кода, которые изменяют состояние виртуальной машины в соответствии с исходным гостевым кодом (например, так работает эмулятор полной системы QEMU). В результате вы снова можете «подделать» тип процессора, эмулируя инструкцию cpuid . Обратите внимание, что в этом случае guest и host могут иметь одинаковую архитектуру, но в этом нет необходимости.

Конечно, возможна комбинация вышеперечисленных методов.

Что касается виртуализации основной памяти, то гипервизор полностью контролирует оборудование, поэтому вы можете просто настроить виртуальную машину с 64 МБ основной памяти. ВМ не может «видеть» больше, чем это из-за методов, кратко описанных выше.

Пожалуйста, имейте в виду, что это просто очень краткий обзор виртуализации, и я постарался сделать его кратким и информативным, поэтому я знаю, что мои объяснения частично не очень точны. Если вы действительно заинтересованы в виртуализации, я рекомендую прочитать «Виртуальные машины: универсальные платформы для систем и процессов» или статьи по теме Popek & Goldberg и «Xen и Искусство виртуализации »

0 голосов
/ 21 января 2019

На момент выпуска Windows 95 имел код только для распознавания CPUID до Pentium Pro.Любой процессор не ниже Pentium Pro называется «Pentium Pro».

Основное отличие заключается в том, что гипервизор не может эмулировать код процессора.Весь код должен выполняться на исходном процессоре.

Гипервизор эмулирует BIOS, который сообщает ОС доступные аппаратные спецификации;включая оперативную память, порядок загрузки и периферийные устройства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...