Полная виртуализация - Википедия - Full virtualization

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

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

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

  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 Система / 360 серии, за исключением IBM System / 360-67; и это было невозможно с ранним Система / 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-на-Linux, Parallels Desktop для Mac, Parallels Workstation, VMware Workstation, Сервер VMware (ранее GSX Server), VirtualBox, Win4BSD и Win4Lin Pro. VMware, например, использует метод, называемый двоичная трансляция для автоматического изменения программного обеспечения x86 на лету для замены инструкций, которые «проникают в виртуальную машину», другой, безопасной для виртуальной машины последовательностью инструкций; этот метод обеспечивает видимость полной виртуализации.[1]

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

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

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

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

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

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

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

внешняя ссылка