Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Снимок экрана одной среды виртуализации

В информатике , виртуализация представляет собой современный метод , разработанный в конце 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 System / 360, за исключением IBM System / 360-67 ; это было невозможно и с ранней системой IBM System / 370 . IBM добавила оборудование виртуальной памяти в серию System / 370 в 1972 году, что не то же самое, что Intel VT-x Rings, предоставляя гипервизору более высокий уровень привилегий для правильного управления виртуальными машинами, требуя полного доступа к режимам Supervisor, Program или User.

Точно так же полная виртуализация была невозможна с платформой 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]

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

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

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

См. Также [ править ]

  • Сравнение программного обеспечения для виртуализации платформ
  • CP / CMS
  • Аппаратная виртуализация
  • Гиперджекинг
  • Гипервизор
  • Виртуализация ввода-вывода
  • LPAR
  • Виртуализация на уровне операционной системы
  • Паравиртуализация
  • Виртуализация платформы
  • Требования Попека и Голдберга к виртуализации
  • PR / SM
  • Виртуальная машина

Ссылки [ править ]

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

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

Внешние ссылки [ править ]

  • Совместимость - это не прозрачность: мифы и реальность обнаружения VMM