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

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

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

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

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

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

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

Важным примером виртуальных машин, не путать с виртуализацией, реализованной посредством эмуляции, была программа управления операционной системы IBM CP / CMS. Впервые это было продемонстрировано на исследовательской системе IBM CP-40 в 1967 году, затем оно было распространено через открытый исходный код в CP / CMS в 1967–1972 годах и повторно реализовано в семействе виртуальных машин IBM с 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 на лету с целью замены инструкций, которые «проникают в виртуальную машину», на другую, безопасную для виртуальной машины последовательность инструкций; этот метод обеспечивает видимость полной виртуализации.

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

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

  • совместное использование компьютерной системы несколькими пользователями;
  • изоляция пользователей друг от друга (и от управляющей программы);
  • эмуляция нового оборудования для повышения надежности, безопасности и производительности.
Смотрите также
использованная литература

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

внешние ссылки
Последняя правка сделана 2023-04-04 11:40:16
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте