Гипервизор

редактировать

Гипервизор (или монитора виртуальной машины, МВМ, виртуализатор) является своего рода эмулятор ; это компьютерное программное обеспечение, микропрограммное обеспечение или оборудование, которые создают и запускают виртуальные машины. Компьютер, на котором гипервизор запускает одну или несколько виртуальных машин, называется хост-машиной, а каждая виртуальная машина называется гостевой машиной. Гипервизор представляет гостевые операционные системы виртуальной операционной платформой и управляет работой гостевых операционных систем. Несколько экземпляров различных операционных систем могут совместно использовать виртуализированные аппаратные ресурсы: например, экземпляры Linux, Windows и macOS могут работать на одной физической машине x86. Это контрастирует с виртуализацией на уровне операционной системы, где все экземпляры (обычно называемые контейнерами) должны совместно использовать одно ядро, хотя гостевые операционные системы могут отличаться по пространству пользователя, например, разные дистрибутивы Linux с одним и тем же ядром.

Термин гипервизор представляет собой вариант супервизора, традиционный термин для ядра в качестве операционной системы : гипервизор является руководителем контролеров, с гипер-, используемой в качестве более сильного варианта супер-. Термин датируется примерно 1970 годом; в более ранней системе CP / CMS (1967) вместо этого использовался термин « управляющая программа».

СОДЕРЖАНИЕ

  • 1 Классификация
  • 2 Истоки мэйнфреймов
  • 3 Поддержка операционной системы
  • 4 системы x86
  • 5 Встроенные системы
  • 6 Последствия для безопасности
  • 7 Примечания
  • 8 ссылки
  • 9 Внешние ссылки

Классификация

Гипервизоры типа 1 и типа 2

В своей статье 1974 года «Формальные требования к виртуализируемым архитектурам третьего поколения» Джеральд Дж. Попек и Роберт П. Голдберг классифицировали два типа гипервизора:

Тип 1, собственные или голые гипервизоры
Эти гипервизоры запускаются непосредственно на аппаратном обеспечении хоста для управления оборудованием и гостевыми операционными системами. По этой причине их иногда называют голыми гипервизорами. Первые гипервизоры, разработанные IBM в 1960-х годах, были собственными гипервизорами. К ним относятся тестовое программное обеспечение SIMMON и операционная система CP / CMS, предшественница IBM z / VM. Современные эквиваленты включают AntsleOS, Microsoft Hyper-V и системное программное обеспечение Xbox One, Nutanix Ahv, XCP-нг, Oracle VM Server, для SPARC, Oracle VM Server, для x86, гипервизоре POWER, QNX гипервизора, VMware ESXi (ранее ESX), Proxmox Virtual Environment и Xen.
Тип 2 или размещенные гипервизоры
Эти гипервизоры работают в обычной операционной системе (ОС), как и другие компьютерные программы. Гостевая операционная система работает на хосте как процесс. Гипервизоры типа 2 абстрагируют гостевые операционные системы от операционной системы хоста. Parallels Desktop для Mac, QEMU, VirtualBox, VMware Player и VMware Workstation являются примерами гипервизоров типа 2.

Различие между этими двумя типами не всегда очевидно. Например, виртуальная машина на основе ядра (KVM) и bhyve - это модули ядра, которые эффективно преобразуют операционную систему хоста в гипервизор типа 1. В то же время, поскольку дистрибутивы Linux и FreeBSD по-прежнему являются операционными системами общего назначения с приложениями, конкурирующими друг с другом за ресурсы виртуальных машин, KVM и bhyve также можно отнести к гипервизорам второго типа.

Истоки мэйнфреймов

Первыми гипервизорами, обеспечивающими полную виртуализацию, были тестовый инструмент SIMMON и единственная исследовательская система IBM CP-40, которая начала производиться в январе 1967 года и стала первой версией операционной системы IBM CP / CMS. CP-40 работал на S / 360-40, модифицированном в Кембриджском научном центре для поддержки динамической трансляции адресов, функции, обеспечивающей виртуализацию. До этого времени компьютерное оборудование было виртуализировано только до такой степени, чтобы позволить нескольким пользовательским приложениям работать одновременно, например, в CTSS и IBM M44 / 44X. В CP-40 состояние супервизора оборудования также было виртуализировано, что позволило нескольким операционным системам работать одновременно в разных контекстах виртуальных машин.

Вскоре программисты реализовали CP-40 (как CP-67 ) для IBM System / 360-67, первой производственной компьютерной системы, способной к полной виртуализации. IBM поставила эту машину в 1966 году; он включал оборудование таблицы преобразования страниц для виртуальной памяти и другие методы, которые позволяли полностью виртуализировать все задачи ядра, включая ввод-вывод и обработку прерываний. (Обратите внимание, что «официальная» операционная система, злополучная TSS / 360, не использовала полную виртуализацию.) И CP-40, и CP-67 начали использовать в производстве в 1967 году. CP / CMS был доступен клиентам IBM с 1968 по в начале 1970-х, в виде исходного кода без поддержки.

CP / CMS стал частью попытки IBM создать надежные системы с разделением времени для своих мэйнфреймов. За счет одновременного запуска нескольких операционных систем гипервизор повысил надежность и стабильность системы: даже если одна операционная система выйдет из строя, другие продолжат работать без перебоев. Более того, это даже позволяло развертывать и отлаживать бета-версии или экспериментальные версии операционных систем - или даже нового оборудования - без ущерба для стабильной основной производственной системы и без необходимости в дорогостоящих дополнительных системах разработки.

IBM анонсировала свою серию System / 370 в 1970 году без функции виртуальной памяти, необходимой для виртуализации, но добавила ее в августовском объявлении о расширенных функциях 1972 года. Виртуализация была представлена ​​во всех последующих системах, так что все современные мэйнфреймы IBM, включая линейку zSeries, сохраняют обратную совместимость с линейкой IBM S / 360 1960-х годов. Объявление 1972 года также включало VM / 370, повторную реализацию CP / CMS для S / 370. В отличие от CP / CMS, IBM предоставила поддержку этой версии (хотя она все еще распространялась в виде исходного кода для нескольких выпусков). VM означает виртуальную машину, подчеркивая, что все, а не только некоторые, аппаратные интерфейсы виртуализированы. И VM, и CP / CMS получили признание и быстрое развитие в университетах, корпоративных пользователях и поставщиках систем разделения времени, а также в IBM. Пользователи играли активную роль в продолжающейся разработке, предвосхищая тенденции, наблюдаемые в современных проектах с открытым исходным кодом. Однако в серии спорных и ожесточенных битв разделение времени проиграло пакетной обработке из- за политической борьбы IBM, и VM оставалась «другой» операционной системой мэйнфреймов IBM на протяжении десятилетий, уступая MVS. Он получил всплеск популярности и поддержки с 2000 в качестве г / VM продукта, например, в качестве платформы для Linux на IBM Z.

Как упоминалось выше, программа управления виртуальной машиной включает в себя обработчик вызовов гипервизора, который перехватывает инструкции DIAG («Диагностика», код операции x'83 '), используемые в виртуальной машине. Это обеспечивает быстрое невиртуализированное выполнение доступа к файловой системе и других операций (DIAG - это зависящая от модели привилегированная инструкция, не используемая в обычном программировании и, следовательно, не виртуализированная. Поэтому она доступна для использования в качестве сигнала для "хостовая" операционная система). При первой реализации в версии 3.1 CP / CMS такое использование DIAG обеспечивало интерфейс операционной системы, аналогичный инструкции вызова супервизора System / 360 (SVC), но не требовал изменения или расширения системной виртуализации SVC.

В 1985 году IBM представила гипервизор PR / SM для управления логическими разделами (LPAR).

Поддержка операционной системы

Несколько факторов привели к возрождению в 2005 году использования технологии виртуализации среди Unix, Linux и других Unix-подобных операционных систем:

  • Расширение аппаратных возможностей, позволяющее каждой отдельной машине выполнять больше одновременной работы
  • Усилия по контролю затрат и упрощению управления за счет консолидации серверов
  • Необходимость управления крупными многопроцессорными и кластерными установками, например, в фермах серверов и фермах рендеринга.
  • Повышенная безопасность, надежность и независимость устройств от архитектур гипервизора.
  • Возможность запускать сложные, зависимые от ОС приложения на другом оборудовании или в различных ОС.

Основные поставщики Unix, включая HP, IBM, SGI и Sun Microsystems, продавали виртуализированное оборудование еще до 2000 года. Как правило, это были большие и дорогие системы (в диапазоне многомиллионных долларов на высоком уровне), хотя виртуализация также была доступны в некоторых системах низкого и среднего уровня, таких как серверы IBM pSeries, машины серии HP Superdome и серверы Sun / Oracle серии T.

Хотя Solaris всегда была единственной ОС гостевого домена, официально поддерживаемой Sun / Oracle в их гипервизоре логических доменов, с конца 2006 года Linux (Ubuntu и Gentoo) и FreeBSD были перенесены для работы поверх гипервизора (и все могут работать одновременно на одном процессоре, как полностью виртуализированные независимые гостевые ОС). Wind River " Carrier Grade Linux " также работает на гипервизоре Sun. Полная виртуализация на процессорах SPARC оказалась простой задачей: с момента своего создания в середине 1980-х годов Sun сознательно очищала архитектуру SPARC от артефактов, которые могли бы препятствовать виртуализации. (Сравните с виртуализацией на процессорах x86 ниже.)

HPE предоставляет виртуальные машины HP Integrity (Integrity VM) для размещения нескольких операционных систем на своих системах Integrity на базе процессоров Itanium. Itanium может запускать HP-UX, Linux, Windows и OpenVMS, и эти среды также поддерживаются как виртуальные серверы на платформе HP Integrity VM. В операционной системе HP-UX размещен уровень гипервизора Integrity VM, который позволяет использовать преимущества многих важных функций HP-UX и обеспечивает существенное различие между этой платформой и другими массовыми платформами, такими как горячая замена процессора, горячая замена памяти и динамическое ядро. обновления без перезагрузки системы. Хотя гипервизор Integrity VM в значительной степени использует HP-UX, он на самом деле представляет собой гибрид, который работает на «голом железе» во время выполнения гостевых систем. Запуск обычных приложений HP-UX на хосте Integrity VM настоятельно не рекомендуется, поскольку Integrity VM реализует собственные политики управления памятью, планирования и ввода-вывода, которые настроены для виртуальных машин и не так эффективны для обычных приложений. HPE также обеспечивает более жесткое разделение своих систем Integrity и HP9000 с помощью технологий VPAR и nPar, первая из которых предлагает разделение общих ресурсов, а вторая предлагает полную изоляцию ввода-вывода и обработки. Гибкость среды виртуальных серверов (VSE) уступила место ее более частому использованию в новых развертываниях.

IBM предоставляет технологию виртуализации разделов, известную как логическое разделение (LPAR), в системах System / 390, zSeries, pSeries и iSeries. Для IBM Power Systems гипервизор POWER (PHYP) - это встроенный («голый») гипервизор во встроенном ПО, обеспечивающий изоляцию между разделами LPAR. Емкость процессора предоставляется логическим разделам либо выделенным образом, либо на основе прав, когда неиспользуемая емкость собирается и может быть повторно выделена для загруженных рабочих нагрузок. Процессорной мощностью групп LPAR можно управлять, как если бы они находились в «пуле» - IBM называет эту возможность несколькими пулами общих процессоров (MSPP) и реализует ее на серверах с процессором POWER6. Распределение емкости LPAR и MSPP можно динамически изменять. Память выделяется каждому LPAR (при инициализации LPAR или динамически) и управляется по адресу гипервизором POWER. Для адресации в реальном режиме в операционных системах ( AIX, Linux, IBM i ) процессоры POWER ( начиная с POWER4 ) разработали возможности виртуализации, в которых аппаратное смещение адреса оценивается с помощью смещения адреса ОС для получения адреса физической памяти. Адаптеры ввода / вывода (I / O) могут принадлежать исключительно LPAR или совместно использоваться LPAR через раздел устройства, известный как Virtual I / O Server (VIOS). Гипервизор Power обеспечивает высокий уровень надежности, доступности и удобства обслуживания (RAS), облегчая горячее добавление / замену многих частей (в зависимости от модели: процессоры, память, адаптеры ввода-вывода, нагнетатели, блоки питания, диски, системные контроллеры и т. Д.)

Аналогичные тенденции произошли с серверными платформами x86 / x86-64, где проекты с открытым исходным кодом, такие как Xen, возглавляют усилия по виртуализации. К ним относятся гипервизоры, построенные на ядрах Linux и Solaris, а также пользовательские ядра. Поскольку эти технологии охватывают от больших систем до настольных компьютеров, они описаны в следующем разделе.

системы x86

Основная статья: виртуализация x86

С 2005 года поставщики процессоров добавили в свои продукты поддержку аппаратной виртуализации; например, Intel VT-x (кодовое имя Vanderpool) и AMD-V (кодовое имя Pacifica).

Альтернативный подход требует модификации гостевой операционной системы для выполнения системного вызова базового гипервизора, а не выполнения машинных инструкций ввода-вывода, которые гипервизор имитирует. Это называется паравиртуализацией в Xen, «гипервызовом» в Parallels Workstation и «кодом DIAGNOSE» в IBM VM. Некоторые микроядра, такие как Mach и L4, достаточно гибкие, чтобы позволить паравиртуализацию гостевых операционных систем.

Встроенные системы

Встроенные гипервизоры, ориентированные на встроенные системы и определенные среды операционных систем реального времени (RTOS), разработаны с различными требованиями по сравнению с настольными и корпоративными системами, включая надежность, безопасность и возможности реального времени. Ограниченность ресурсов многих встраиваемых систем, особенно мобильных систем с батарейным питанием, предъявляет дополнительные требования к небольшому объему памяти и низким накладным расходам. Наконец, в отличие от повсеместного распространения архитектуры x86 в мире ПК, в мире встроенных систем используется более широкий спектр архитектур и менее стандартизованные среды. Поддержка виртуализации требует защиты памяти (в форме блока управления памятью или, по крайней мере, блока защиты памяти) и различия между пользовательским режимом и привилегированным режимом, что исключает использование большинства микроконтроллеров. Это по-прежнему оставляет x86, MIPS, ARM и PowerPC широко используемыми архитектурами во встроенных системах среднего и высокого уровня.

Поскольку производители встраиваемых систем обычно имеют исходный код своих операционных систем, им меньше нужна полная виртуализация в этом пространстве. Вместо этого преимущества в производительности паравиртуализации обычно делают эту технологию предпочтительной. Тем не менее, ARM и MIPS недавно добавили полную поддержку виртуализации в качестве опции IP и включили ее в свои последние высокопроизводительные процессоры и версии архитектуры, такие как ARM Cortex-A15 MPCore и ARMv8 EL2.

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

Последствия для безопасности

Основная статья: Гиперджекинг

Использование технологии гипервизора вредоносными программами и руткитами, устанавливающими себя в качестве гипервизора под операционной системой, известное как гиперджекинг, может затруднить их обнаружение, поскольку вредоносное ПО может перехватить любые операции операционной системы (например, ввод пароля) без антивирусное программное обеспечение обязательно его обнаруживает (поскольку вредоносное ПО работает под всей операционной системой). Предполагается, что реализация концепции произошла в лабораторном рутките SubVirt (разработанном совместно Microsoft и исследователями из Университета Мичигана ), а также в пакете вредоносных программ Blue Pill. Однако такие утверждения были оспорены другими, которые утверждали, что можно было бы обнаружить наличие руткита на основе гипервизора.

В 2009 году исследователи из Microsoft и Университета штата Северная Каролина продемонстрировали антируткит уровня гипервизора под названием Hooksafe, который может обеспечить общую защиту от руткитов режима ядра.

Примечания

использованная литература

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

Последняя правка сделана 2023-03-31 01:05:18
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте