stringtranslate.com

Гипервизор

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

Термин гипервизор — это вариант супервизора , традиционного термина для ядра операционной системы : гипервизор — это супервизор супервизоров, [2] с гипер- используется как более сильный вариант супер- . [a] Этот термин датируется примерно 1970 годом; [3] IBM придумала его для 360/65 [4] и позже использовала его для обработчика DIAG CP-67. В более ранней системе CP/CMS (1967) вместо этого использовался термин « Программа управления» .

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

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

В своей диссертации 1973 года «Архитектурные принципы виртуальных компьютерных систем» Роберт П. Голдберг классифицировал два типа гипервизоров: [1]

Гипервизоры типа 1, собственные или «голые» гипервизоры
Эти гипервизоры запускаются непосредственно на оборудовании хоста для управления оборудованием и гостевыми операционными системами. По этой причине их иногда называют «голыми» гипервизорами. Первые гипервизоры, разработанные IBM в 1960-х годах, были собственными гипервизорами. [5] В их число входили тестовое программное обеспечение SIMMON и операционная система CP/CMS , предшественница семейства операционных систем виртуальных машин IBM VM .
Тип 2 или размещенные гипервизоры
Эти гипервизоры работают на обычной операционной системе (ОС), как и другие компьютерные программы. Монитор виртуальной машины запускается как процесс на хосте. Гипервизоры типа 2 абстрагируют гостевые операционные системы от операционной системы хоста.

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

Происхождение мэйнфреймов

Первыми гипервизорами, обеспечивающими полную виртуализацию, были инструмент тестирования 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 создать надежные системы разделения времени для своих мэйнфреймов . За счет одновременного запуска нескольких операционных систем гипервизор повысил надежность и стабильность системы: даже если одна операционная система выйдет из строя, остальные продолжат работать без перебоев. Действительно, это даже позволило развернуть и отладить бета- или экспериментальные версии операционных систем — или даже нового оборудования [9] — без ущерба для стабильной основной производственной системы и без необходимости дорогостоящих дополнительных систем разработки.

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 года он стал пользоваться популярностью и поддержкой как продукт z/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-подобных операционных систем: [10]

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

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

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 и IBM AS/400 . Для IBM Power Systems гипервизор POWER (PHYP) представляет собой собственный (голый) гипервизор встроенного ПО и обеспечивает изоляцию между логическими разделами. Мощность процессора предоставляется логическим разделам либо выделенным образом, либо на основе разрешений, когда неиспользуемая мощность собирается и может быть перераспределена для загруженных рабочих нагрузок. Группы LPAR могут управлять своей процессорной мощностью так, как если бы они находились в «пуле» — IBM называет эту возможность «множественными пулами общих процессоров» (MSPP) и реализует ее на серверах с процессором POWER6 . Распределение мощности LPAR и MSPP можно динамически изменять. Память выделяется каждому LPAR (при запуске LPAR или динамически) и управляется по адресу гипервизором POWER. Для адресации в реальном режиме в операционных системах ( AIX , Linux , IBM i ) процессоры Power ( начиная с POWER4 ) разработали возможности виртуализации, при которых смещение аппаратного адреса оценивается со смещением адреса ОС для получения адреса физической памяти. Адаптеры ввода-вывода (I/O) могут принадлежать исключительно LPAR или совместно использоваться LPAR через раздел устройства, известный как сервер виртуального ввода-вывода (VIOS). Power Hypervisor обеспечивает высокий уровень надежности, доступности и удобства обслуживания (RAS), обеспечивая горячее добавление/замену многих компонентов (в зависимости от модели: процессоров, памяти, адаптеров ввода-вывода, вентиляторов, блоков питания, дисков, системных контроллеров и т. д.). )

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

системы x86

Виртуализация X86 была представлена ​​в 1990-х годах, ее эмуляция была включена в Bochs . [13] Intel и AMD выпустили свои первые процессоры x86 с аппаратной виртуализацией в 2005 году: Intel VT-x (под кодовым названием Vanderpool) и AMD-V (под кодовым названием Pacifica).

Альтернативный подход требует изменения гостевой операционной системы для выполнения системного вызова базового гипервизора, а не выполнения машинных инструкций ввода-вывода, которые имитирует гипервизор. В Xen это называется паравиртуализацией , в Parallels Workstation — «гипервызовом» , в IBM VM — «кодом ДИАГНОСТИКИ» . Некоторые микроядра, такие как Mach и L4 , достаточно гибки, чтобы обеспечить паравиртуализацию гостевых операционных систем.

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

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

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

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

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

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

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

Примечания

  1. ^ super- от латыни, что означает «выше», а гипер- от родственного термина в древнегреческом языке (ὑπέρ-), также означающего « выше » или «над ».

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

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

  1. ^ Аб Голдберг, Роберт П. (1973). Архитектурные принципы виртуальных компьютерных систем (PDF) (технический отчет). Гарвардский университет. ЭСД-ТР-73-105.
  2. ^ Бернард Голден (2011). Виртуализация для чайников . п. 54.
  3. ^ «Как вошёл в употребление термин «гипервизор»?».
  4. ^ Гэри Р. Оллред (май 1971 г.). Интегрированная эмуляция System/370 под OS и DOS (PDF) . Весенняя совместная компьютерная конференция 1971 года . Том. 38. АФИПС Пресс. п. 164. дои :10.1109/AFIPS.1971.58 . Проверено 12 июня 2022 г.
  5. ^ Мейер, Шеннон (2008). «Виртуализация систем IBM: серверы, хранилища и программное обеспечение» (PDF) . стр. 2, 15, 20 . Проверено 22 декабря 2015 г.
  6. ^ Декстер, Майкл. «Практический бхайв». CallForTesting.org . Проверено 24 сентября 2013 г.
  7. ^ Грациано, Чарльз (2011). Анализ производительности гипервизоров Xen и KVM для размещения проекта Xen Worlds Project (дипломная работа MS). Университет штата Айова. дои : 10.31274/etd-180810-2322 . hdl : 20.500.12876/26405 . Проверено 16 октября 2022 г.
  8. Паризо, Бет (15 апреля 2011 г.). «KVM вновь разжигает дебаты о гипервизоре типа 1 и типа 2». Виртуализация поискового сервера . ТехТаржет . Проверено 29 января 2013 г.
  9. ^ См. Историю CP/CMS для моделирования виртуального оборудования при разработке System/370.
  10. Лофтус, Джек (19 декабря 2005 г.). «Виртуализация Xen быстро становится «убийственным приложением» с открытым исходным кодом». ТехТаржет . Проверено 26 октября 2015 г.
  11. ^ «Wind River будет поддерживать революционный многопоточный процессор следующего поколения UltraSPARC T1 от Sun» . Отдел новостей Wind River (пресс-релиз). Аламеда, Калифорния. 1 ноября 2006 года. Архивировано из оригинала 10 ноября 2006 года . Проверено 26 октября 2015 г.
  12. ^ Фрич, Лотар; Хусейки, Рани; Алькассар, Аммар. Дополнительные и альтернативные технологии доверенных вычислений (TC-Erg./-A.), Часть 1, Исследование по поручению Федерального управления информационной безопасности Германии (BSI) (PDF) (Отчет). Архивировано из оригинала (PDF) 7 июня 2020 г. Проверено 28 февраля 2011 г.
  13. ^ «Знакомство с Бохсом». bochs.sourceforge.io . Проверено 17 апреля 2023 г.
  14. ^ Штробль, Мариус (2013). Виртуализация для надежных встраиваемых систем. Мюнхен: GRIN Publishing GmbH. стр. 5–6. ISBN 978-3-656-49071-5. Проверено 7 марта 2015 г.
  15. ^ Гернот Хейзер (апрель 2008 г.). «Роль виртуализации во встроенных системах». Учеб. 1-й семинар по изоляции и интеграции встраиваемых систем (IIES'08) . стр. 11–16. Архивировано из оригинала 21 марта 2012 года . Проверено 8 апреля 2009 г.
  16. ^ «SubVirt: внедрение вредоносного ПО на виртуальных машинах» (PDF) . Мичиганский университет , Microsoft . 3 апреля 2006 года . Проверено 15 сентября 2008 г.
  17. ^ «Разоблачение мифа о синих таблетках» . Виртуализация.информация. 11 августа 2006. Архивировано из оригинала 14 февраля 2010 года . Проверено 10 декабря 2010 г.
  18. ^ Ван, Чжи; Цзян, Сюсянь; Цуй, Вэйдун; Нин, Пэн (11 августа 2009 г.). «Противодействие руткитам ядра с помощью облегченной защиты от перехвата». Материалы 16-й конференции ACM по компьютерной и коммуникационной безопасности (PDF) . ККС '09. Чикаго, Иллинойс, США: ACM . стр. 545–554. CiteSeerX 10.1.1.147.9928 . дои : 10.1145/1653662.1653728. ISBN  978-1-60558-894-0. S2CID  3006492 . Проверено 11 ноября 2009 г.

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