Полная виртуализация
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В информатике разработанный полная виртуализация (fv) — это современный метод виртуализации, в конце 1990-х годов. Это отличается от симуляции и эмуляции . В виртуализации используются методы, позволяющие создавать экземпляры виртуальной среды, в отличие от моделирования, которое моделирует среду; и эмуляция, которая копирует целевую среду с помощью определенных типов виртуальных сред, называемых средами эмуляции виртуальных машин . Полная виртуализация требует, чтобы каждая существенная функция оборудования была отражена в одной из нескольких виртуальных машин, включая полный набор команд, операции ввода/вывода , прерывания, доступ к памяти и любые другие элементы, используемые программным обеспечением, работающим на голой машине. , и предназначен для запуска на виртуальной машине. В такой среде любое программное обеспечение, способное работать на чистом оборудовании, может быть запущено на виртуальной машине и, в частности, в любой операционной системе. Очевидным тестом полной виртуализации является то, может ли операционная система, предназначенная для автономного использования, успешно работать внутри виртуальной машины.
Краеугольным камнем полной виртуализации или виртуализации типа 1 является гипервизор или супероперационная система, которая работает на более высоком уровне привилегий, чем операционная система. Для этого гипервизора или супер ОС требуются две ключевые функции для обеспечения и защиты виртуализированных сред. Эти две особенности:
- Независимое от ОС управление хранилищем для выделения ресурсов для всех поддерживаемых виртуальных сред, таких как Linux, Microsoft Windows или встроенные среды, а также для защиты этих сред от несанкционированного доступа и,
- Переключение виртуализированных сред для выделения физических вычислительных ресурсов виртуальным средам.
Подробное описание уровней привилегий для гипервизора, ОС и пользовательского режима, 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 Rings, обеспечивая более высокий уровень привилегий для гипервизора для правильного управления виртуальными машинами, требующими полного доступа к режимам супервизора, программы или пользователя.
Точно так же полная виртуализация на платформе 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]
Ключевой проблемой полной виртуализации является перехват и моделирование привилегированных операций, таких как инструкции ввода-вывода. Эффекты каждой операции, выполняемой на данной виртуальной машине, должны сохраняться внутри этой виртуальной машины — виртуальным операциям нельзя позволять изменять состояние любой другой виртуальной машины, управляющей программы или оборудования. Некоторые машинные инструкции могут выполняться непосредственно аппаратным обеспечением, поскольку их действие полностью содержится в элементах, управляемых программой управления, таких как ячейки памяти и арифметические регистры. Но другие инструкции, которые могли бы «проникнуть в виртуальную машину», не могут быть выполнены напрямую; вместо этого их необходимо поймать и смоделировать. Такие инструкции либо получают доступ, либо влияют на информацию о состоянии, находящуюся за пределами виртуальной машины.
Полная виртуализация оказалась весьма успешной для:
- совместное использование компьютерной системы несколькими пользователями;
- изоляция пользователей друг от друга (и от управляющей программы);
- эмуляция нового оборудования для повышения надежности, безопасности и производительности.
См. также [ править ]
- Сравнение программного обеспечения для виртуализации платформ
- КП/CMS
- Аппаратная виртуализация
- Гиперджекинг
- Гипервизор
- Виртуализация ввода-вывода
- LPAR
- Виртуализация на уровне ОС
- Паравиртуализация
- Аппаратная виртуализация
- Требования Попека и Голдберга к виртуализации
- PR/СМ
- Виртуальная машина
Ссылки [ править ]
- ^ VMware (11 сентября 2007 г.). «Понимание полной виртуализации, паравиртуализации и аппаратной поддержки» (PDF) . ВМваре . Архивировано (PDF) из оригинала 11 мая 2008 г. Проверено 20 мая 2021 г.
См. конкретные источники, перечисленные в разделе «Виртуализация платформы» и (исторические источники) CP/CMS .