stringtranslate.com

Полная виртуализация

Снимок экрана одной среды виртуализации

В информатике полная виртуализация (fv) — это современный метод виртуализации , разработанный в конце 1990-х годов. Это отличается от симуляции и эмуляции . В виртуализации используются методы, позволяющие создавать экземпляры виртуальной среды, в отличие от моделирования, которое моделирует среду; и эмуляция, которая копирует целевую среду с помощью определенных типов виртуальных сред, называемых средами эмуляции виртуальных машин . Полная виртуализация требует, чтобы каждая существенная функция оборудования была отражена в одной из нескольких виртуальных машин, включая полный набор команд, операции ввода/вывода , прерывания, доступ к памяти и любые другие элементы, используемые программным обеспечением, работающим на голой машине. , и предназначен для запуска на виртуальной машине. В такой среде любое программное обеспечение, способное выполняться на «чистом» оборудовании, может быть запущено на виртуальной машине и, в частности, в любой операционной системе. Очевидным тестом полной виртуализации является то, может ли операционная система, предназначенная для автономного использования, успешно работать внутри виртуальной машины.

Краеугольным камнем полной виртуализации или виртуализации типа 1 является гипервизор или супероперационная система, которая работает на более высоком уровне привилегий, чем операционная система. Для этого гипервизора или супер ОС требуются две ключевые функции для обеспечения и защиты виртуализированных сред. Эти две особенности:

  1. Независимое от ОС управление хранилищем для выделения ресурсов для всех поддерживаемых виртуальных сред, таких как Linux, Microsoft Windows или встроенные среды, а также для защиты этих сред от несанкционированного доступа и,
  2. Переключение виртуализированных сред для выделения физических вычислительных ресурсов виртуальным средам.

Подробное описание уровней привилегий для гипервизора, ОС и пользовательского режима, VMCS, выхода из виртуальной машины и входа в виртуальную машину см. в разделе Intel VT-x или AMD-V. Эту виртуализацию не следует путать с реализациями виртуальных машин IBM конца 60-х и начала 70-х годов, поскольку архитектура систем IBM поддерживала только два режима: супервизор и программу, которые не обеспечивали безопасности или разделения виртуальных машин.

Другие формы виртуализации платформ позволяют запускать на виртуальной машине только определенное или модифицированное программное обеспечение. Концепция полной виртуализации хорошо известна в литературе, но не всегда обозначается этим конкретным термином; терминологию см. в разделе «Виртуализация платформы».

Важным примером виртуальных машин, который не следует путать с виртуализацией, реализованной путем эмуляции, является программа управления операционной системы IBM CP/CMS . Впервые он был продемонстрирован на исследовательской системе IBM CP-40 в 1967 году, затем распространялся через открытый исходный код в CP/CMS в 1967–1972 годах и повторно реализован в семействе IBM VM с 1972 года по настоящее время. Каждому пользователю CP/CMS был предоставлен смоделированный автономный компьютер. Каждая такая виртуальная машина обладала всеми возможностями базовой машины, и (для ее пользователя) виртуальная машина была неотличима от частной системы. Это моделирование было комплексным и основывалось на руководстве по принципам работы аппаратного обеспечения. Таким образом, он включал такие элементы, как набор команд, основная память, прерывания, исключения и доступ к устройствам. В результате появилась одна машина, которую можно было мультиплексировать между многими пользователями.

Полная виртуализация возможна только при правильном сочетании аппаратных и программных элементов. Например, это было невозможно для большинства серий IBM System/360 , за исключением IBM System/360-67 ; это было невозможно и в ранней системе IBM System/370 . IBM добавила оборудование виртуальной памяти в серию System/370 в 1972 году, что отличается от колец Intel VT-x, обеспечивая более высокий уровень привилегий для гипервизора для правильного управления виртуальными машинами, требующими полного доступа к режимам супервизора, программы или пользователя.

Точно так же полная виртуализация на платформе x86 была невозможна до тех пор, пока в 2005–2006 годах не были добавлены расширения AMD-V и Intel VT-x (см. Виртуализация x86 ). [ нужна цитата ] Многие гипервизоры для платформы x86 подошли очень близко и заявляли о полной виртуализации еще до добавления AMD-V и Intel VT-x. Примеры включают Adeos , Mac-on-Linux, Parallels Desktop для Mac , Parallels Workstation , VMware Workstation , VMware Server (ранее GSX Server), VirtualBox , Win4BSD и Win4Lin Pro . VMware, например, использует метод, называемый двоичной трансляцией , для автоматического изменения программного обеспечения x86 «на лету» с целью замены инструкций, которые «проникают в виртуальную машину», другой, безопасной для виртуальной машины последовательностью инструкций; этот метод обеспечивает видимость полной виртуализации. [1]

Ключевой проблемой полной виртуализации является перехват и моделирование привилегированных операций, таких как инструкции ввода-вывода. Эффекты каждой операции, выполняемой на данной виртуальной машине, должны сохраняться внутри этой виртуальной машины — виртуальным операциям нельзя позволять изменять состояние любой другой виртуальной машины, управляющей программы или оборудования. Некоторые машинные инструкции могут выполняться непосредственно аппаратным обеспечением, поскольку их действие полностью содержится в элементах, управляемых программой управления, таких как ячейки памяти и арифметические регистры. Но другие инструкции, которые могли бы «проникнуть в виртуальную машину», не могут быть выполнены напрямую; вместо этого их необходимо поймать и смоделировать. Такие инструкции либо получают доступ, либо влияют на информацию о состоянии, находящуюся за пределами виртуальной машины.

Полная виртуализация оказалась весьма успешной для:

Смотрите также

Рекомендации

  1. ^ VMware (11 сентября 2007 г.). «Понимание полной виртуализации, паравиртуализации и аппаратной поддержки» (PDF) . ВМваре . Архивировано (PDF) из оригинала 11 мая 2008 г. Проверено 20 мая 2021 г.

См. конкретные источники, перечисленные в разделе «Виртуализация платформы» и (исторические источники) CP/CMS .

Внешние ссылки