5

Vmware - это установленное пользователем программное обеспечение. Поэтому он должен работать в пространстве пользователя, заданном базовой ОС. Тем не менее, он запускает ОС, которые полностью работоспособны и должны работать в режиме ядра. Так, где это бежит?

4 ответа4

6

VMWare предоставляет целый ряд проектов, и Винко Врсалович уже отметил, что VMWare ESX действительно является собственной операционной системой.

Как правило, мониторы виртуальных машин (VMM), такие как VMWare Workstation, QEmu или Virtualbox, можно запускать полностью в пространстве пользователя. Они просто берут диск или образ CDROM ОС для запуска и запускают эмуляцию ПК, интерпретируя все инструкции и эмулируя доступ к устройству. Однако из соображений производительности программное обеспечение для виртуализации старается избегать эмуляции как можно чаще, поскольку гораздо быстрее выполнять поток инструкций на реальном оборудовании, чем эмулировать его.

Для ускорения процесса виртуализации используются несколько подходов:

  • Двоичная перезапись: ваша виртуализированная ОС выполняет приложения ядра и пользовательского пространства. Для приложений из пользовательского пространства применяются те же ограничения в отношении выполнения инструкций, что и для самого монитора виртуальной машины, поэтому нет проблем с выполнением этих приложений на собственном процессоре. Однако для части ОС вам необходимо эмулировать поведение базового ЦП, поскольку ваш VMM не может сделать это сам. Теперь вам нужно обнаружить все переключатели между пользовательским кодом и кодом ядра, чтобы вы могли эффективно переключаться между собственным выполнением и эмуляцией. VMWare, а также Qemu применяют двоичное переписывание к виртуализированной ОС по мере ее выполнения и тем самым перехватывают все эти коммутаторы.

  • Поддержка оборудования: С ростом популярности VMM (которая существует с 1970-х годов), Intel и AMD начали предоставлять аппаратные расширения для своих наборов инструкций, которые упрощают внедрение VMM в пространстве пользователя.

  • Расширения ядра: VMWare, а также Qemu также позволяют устанавливать драйвер устройства в операционной системе вашего хоста, что позволяет им ускорить выполнение кода ядра и доступ к устройствам, выполняя непосредственное выполнение в режиме ядра.

  • Сквозные драйверы устройств. Ввод-вывод устройств - еще одна проблема с производительностью. Обычно VMM реализует набор виртуальных устройств, которые ведут себя подобно своим реальным аналогам. Этот шаг эмуляции замедляет ввод-вывод и является основным узким местом производительности при виртуализации ОС. Чтобы избежать этого, VMM также позволяют вам устанавливать кучу драйверов устройств в виртуализированной гостевой ОС, которые осведомлены о гостевом оборудовании и позволяют напрямую проходить через устройство от хостовой ОС к гостю без шага эмуляции. (Однако это работает, только если вы запускаете ровно один экземпляр ОС на вашем хосте, потому что никто другой не сможет получить доступ к устройству, если вы передадите его гостю).

2

VMware работает как загружаемая версия как программа уровня пользователя. Он использует монитор виртуальной машины для перехвата реальных инструкций x86 и драйвер устройства для одновременного выполнения гостевой ОС с реализацией виртуализации ЦП, чтобы получить аппаратную виртуализацию для запуска гостей через ее VMM, оставаясь при этом поверх операционной системы. и быть процессом или около того. То же самое и с Virtualbox - это программы, которые обычно не работают на голом железе (но могут), и они сами используют VMM и CPU VT от Intel и так далее, чтобы перехватывать x86 и "обманывать" гостевую ОС, думая, что это работает на всей машине и эмулирует вспомогательное оборудование, которое обычно не существует. В некотором смысле это как эмуляция, а не эмуляция, смешанная вместе. Например, он, вероятно, эмулирует BIOS/ прошивку, так как для этого нет методов виртуализации. Вероятно, он также эмулирует устаревшее устаревшее оборудование, которое может понадобиться виртуализированной гостевой Windows 95/98.

Проще говоря, он использует функции ЦП, которые помогают в обработке виртуализации, чтобы позволить другой ОС работать на том же ЦПУ через сложный процесс эмуляции мониторинга / замены, при этом не нужно быть по-настоящему голой ОС.

1

Это зависит только от того, какой тип программы VMWare вы запускаете. Некоторые работают в ядре, другие - в пространстве пользователя.

0

Не принимая во внимание тот факт, что программное обеспечение, такое как VMWare ESX, само по себе является ОС (модифицированная версия Linux), поверх другой версии ОС обычно выполняется как в пространстве ядра, так и в пространстве пользователя, оно устанавливает драйверы (которые запускаются в пространстве ядра) для всех привилегированные задачи (работа в сети, мониторинг и пр.)

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