При чтении различных материалов по различным предметам время от времени я возвращаюсь на вопрос: Насколько виртуальный действительно виртуализация? С "виртуализацией" я имею в виду вещи как Виртуальный ПК и VMware, которые позволяют Вам выполнять гостя ОС. В частности, что я не понимаю:
Насколько мне известно:
Позвольте мне ответить детально:
1 виртуальная машина обеспечивает среду, которая существенно неотличима от реальной машины? Конечно, будут некоторые практические различия (как аварийные люки вызова гипервизора, фиктивные имена аппаратного компонента, и т.д.), которые позволяют обнаружение виртуальной машины, но там будут какими-либо несовместимостями?
При игнорировании "аварийных люков вызова гипервизора фиктивные имена аппаратного компонента", все, что другие различные, рассматривают ошибки.... кроме, видят ниже.
2, Если среда полностью совместима с реальной машиной, то действительно ли вложенные виртуальные машины возможны?
Это зависит. При использовании аппаратной виртуализации Вы не можете выполнить гипервизор в соответствии с гипервизором. (в теории Вы можете эмулированный, что также, но никто не заботится достаточно, чтобы сделать их грязная работа),
3 В противном случае, который означает, что гость ОС должен быть конкретно адаптирован к выполнению в виртуальной машине? Если так, затем это означает, что большинство сегодняшних OS'es уже было адаптировано к большинству поставщиков VM?
У Вас есть он reveresed. Мы получили ОС перед виртуальной машиной. Виртуальная машина адаптируется к ОС, не другому окольному пути. (существует некоторое исключение, например, старая версия Xen. Но это - исключения),
4 эти вещи, отличающиеся для основанной на программном обеспечении виртуализации по сравнению с базирующимися аппаратными средствами?
см. 2.
5, Каково точно различие между основанной на программном обеспечении виртуализацией и основанный на аппаратных средствах?
см. 4.
До гостя знает ОС, она работает на реальных аппаратных средствах. Смысл виртуализации - то, что Вы ничего не должны изменять на госте.
VMware (например), обеспечивает инструменты и драйверы для загрузки в гостя, но они не необходимы в изолированной машине. Они делают перетаскивание между хостом и гостем возможностью и некоторыми другими аккуратными функциями, но они не обязаны успешно выполнять гостя самой.
IBM на самом деле вела виртуализацию со своим VM (теперь z/VM) продукт, который может успешно выполнить другие копии z/VM, выполнив еще больше копий z/VM, работающего z/OS и zLinux.
Конечно, могут быть некоторые ограничения на фактическую реализацию VM, при этом классическим примером является неспособность VMware выполнить ОС/2 даже при том, что это будет работать на реальном ЦП очень хорошо.
Но это - ограничение продукта, не понятие виртуализации один.
С точки зрения различий в аппаратных средствах/программном обеспечении аппаратная виртуализация просто использует некоторый аспект фактического ЦП (или другие аппаратные средства) для помощи. Чистая виртуализация программного обеспечения является действительно просто эмуляцией (и обычно ужасно замедлитесь по сравнению с альтернативой).
Виртуальные машины пытаются обеспечить среду, которая достаточно хороша для выполнения гостя ОС и приложения. Это фактически невозможно поставщику environemnt, который неотличим от медосмотра, так как там синхронизируют эффекты, которые очень трудно скрыть (по крайней мере, в VM, который работает эффективно),
Вложенные виртуальные машины возможны с VMs, которые являются эмулированным purly (например, Bochs), но Виртуальный ПК и и VMware использует некоторую поддержку оборудования, которая не разработана для вложения.
Основанная на программном обеспечении виртуализация эмулирует каждую инструкцию ЦП (иногда Кольцо использования программных решений 1 для собственного выполнения Кольца 0 кодов как, оптимизация и этот прием не могут быть вложены).
Основанная на аппаратных средствах виртуализация использует специальный режим в процессоре, разработанном, чтобы передать управление к Гипервизору и установить дополнительный уровень таблиц страниц.
Программное обеспечение виртуализации AFAIK эмулирует HAL (уровень аппаратной абстракции) беспрепятственно так гость, ОС понятия не имеет различие. т.е.: нормальная ОС используется.