Гипервизор
Гипервизор или , также известный как монитор виртуальных машин ( VMM ) или виртуализатор , представляет собой тип компьютерного программного обеспечения , встроенного ПО аппаратного обеспечения , которое создает и запускает виртуальные машины . Компьютер, на котором гипервизор запускает одну или несколько виртуальных машин, называется хост-машиной , а каждая виртуальная машина называется гостевой машиной . Гипервизор предоставляет гостевым операционным системам виртуальную операционную платформу и управляет выполнением гостевых операционных систем. В отличие от эмулятора , гость выполняет большинство инструкций на собственном оборудовании. [ 1 ] Несколько экземпляров различных операционных систем могут совместно использовать виртуализированные аппаратные ресурсы: например, экземпляры Linux , Windows и macOS могут работать на одной физической x86 машине . Это контрастирует с виртуализацией на уровне операционной системы , где все экземпляры (обычно называемые контейнерами ) должны использовать одно ядро, хотя гостевые операционные системы могут различаться в пользовательском пространстве , например, разные дистрибутивы Linux с одним и тем же ядром.
Термин «гипервизор» — это вариант супервизора , традиционного термина для ядра операционной системы : гипервизор — это супервизор супервизоров, [ 2 ] при этом гипер- используется как более сильный вариант супер- . [ а ] Этот термин датируется примерно 1970 годом; [ 3 ] IBM придумала это для 360/65. [ 4 ] и позже использовал его для обработчика DIAG CP-67. В более ранней системе CP/CMS термин « Программа управления» (1967) вместо этого использовался .
Классификация
[ редактировать ]В своей диссертации 1973 года «Архитектурные принципы виртуальных компьютерных систем» Роберт П. Голдберг классифицировал два типа гипервизоров: [ 1 ]
- Тип 1, собственные или «голые» гипервизоры
- Эти гипервизоры запускаются непосредственно на оборудовании хоста для управления оборудованием и гостевыми операционными системами. По этой причине их иногда называют «голыми» гипервизорами. Первые гипервизоры, разработанные IBM в 1960-х годах, были собственными гипервизорами. [ 5 ] В их число входили тестовое программное обеспечение SIMMON и операционная система CP/CMS , предшественница IBM VM семейства виртуальных машин операционных систем . Примеры гипервизора типа 1 включают Hyper-V , Xen и VMware ESXi .
- Тип 2 или размещенные гипервизоры
- Эти гипервизоры работают на обычной операционной системе (ОС), как и другие компьютерные программы. Монитор виртуальной машины запускается как процесс на хосте, например VirtualBox . Гипервизоры типа 2 абстрагируют гостевые операционные системы от операционной системы хоста, эффективно создавая изолированную систему, с которой хост может взаимодействовать. Примеры гипервизора типа 2 включают VirtualBox и VMware Workstation .
Различие между этими двумя типами не всегда четкое. Например, KVM и bhyve — это модули ядра. [ 6 ] которые эффективно преобразуют операционную систему хоста в гипервизор типа 1. [ 7 ]
Происхождение мэйнфреймов
[ редактировать ]Первыми гипервизорами, обеспечивающими полную виртуализацию, были инструмент тестирования 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 создать надежные системы разделения времени для своих мэйнфреймов . За счет одновременного запуска нескольких операционных систем гипервизор повысил надежность и стабильность системы: даже если одна операционная система выйдет из строя, остальные продолжат работать без перебоев. Действительно, это позволяло даже создавать бета- или экспериментальные версии операционных систем — или даже нового оборудования. [ 8 ] —можно развернуть и отладить, не ставя под угрозу стабильную основную производственную систему и не требуя дорогостоящих дополнительных систем разработки.
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).
Поддержка операционной системы
[ редактировать ]Этот раздел нуждается в дополнительных цитатах для проверки . ( сентябрь 2021 г. ) |
Несколько факторов привели к возрождению примерно в 2005 году использования технологии виртуализации в Unix , Linux и других Unix-подобных операционных системах: [ 9 ]
- Расширение аппаратных возможностей, позволяющее каждой отдельной машине выполнять больше одновременной работы.
- Усилия по контролю затрат и упрощению управления за счет консолидации серверов.
- Необходимость управления большими многопроцессорными и кластерными установками, например, в фермах серверов и фермах рендеринга.
- Повышенная безопасность, надежность и независимость устройств, возможные благодаря архитектуре гипервизора.
- Возможность запуска сложных, зависящих от ОС приложений на различном оборудовании или ОС.
- Возможность избыточного выделения ресурсов, размещения большего количества приложений на хосте.
Основные поставщики Unix, включая HP , IBM , SGI и Sun Microsystems , продавали виртуализированное оборудование еще до 2000 года. Обычно это были большие и дорогие системы (стоимостью в несколько миллионов долларов в верхнем ценовом диапазоне), хотя виртуализация также применялась. доступно в некоторых системах низкого и среднего уровня, таких как серверы IBM pSeries , машины серии HP Superdome и серверы CoolThreads Sun / Oracle T-серии.
Хотя Solaris всегда была единственной ОС гостевого домена, официально поддерживаемой Sun/Oracle в их гипервизоре логических доменов , по состоянию на конец 2006 г. [update], Linux (Ubuntu и Gentoo) и FreeBSD были портированы для работы поверх гипервизора (и все они могут работать одновременно на одном процессоре, как полностью виртуализированные независимые гостевые ОС). Wind River «Carrier Grade Linux» также работает на гипервизоре Sun. [ 10 ] Полная виртуализация процессоров SPARC оказалась простой: с момента своего создания в середине 1980-х годов Sun намеренно сохраняла архитектуру SPARC чистой от артефактов, которые могли бы препятствовать виртуализации. (Сравните с виртуализацией на процессорах x86 ниже.) [ 11 ]
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
[ редактировать ]Этот раздел нуждается в дополнительных цитатах для проверки . ( апрель 2023 г. ) |
Виртуализация X86 была представлена в 1990-х годах, ее эмуляция была включена в Bochs . [ 12 ] Intel и AMD выпустили свои первые процессоры x86 с аппаратной виртуализацией в 2005 году: Intel VT-x (под кодовым названием Vanderpool) и AMD-V (под кодовым названием Pacifica).
Альтернативный подход требует изменения гостевой операционной системы для выполнения системного вызова базового гипервизора, а не выполнения машинных инструкций ввода-вывода, которые имитирует гипервизор. это называется паравиртуализацией В Xen «гипервызовом» , в Parallels Workstation — — «кодом ДИАГНОСТИКИ» , в IBM VM . Некоторые микроядра, такие как Mach и L4 , достаточно гибки, чтобы обеспечить паравиртуализацию гостевых операционных систем.
Встраиваемые системы
[ редактировать ]Встроенные гипервизоры , предназначенные для встраиваемых систем и определенных сред операционных систем реального времени (RTOS), разрабатываются с учетом других требований по сравнению с настольными и корпоративными системами, включая надежность, безопасность и возможности работы в реальном времени . Ограниченность ресурсов многих встроенных систем, особенно мобильных систем с батарейным питанием, налагает дополнительные требования к небольшому объему памяти и низким накладным расходам. Наконец, в отличие от повсеместной архитектуры x86 в мире ПК, мир встраиваемых систем использует более широкое разнообразие архитектур и менее стандартизированных сред. Поддержка виртуализации требует защиты памяти (в виде блока управления памятью или, по крайней мере, блока защиты памяти) и различия между пользовательским режимом и привилегированным режимом , что исключает использование большинства микроконтроллеров . Это по-прежнему оставляет x86 , MIPS , ARM и PowerPC широко используемыми архитектурами во встраиваемых системах среднего и высокого класса. [ 13 ]
Поскольку производители встраиваемых систем обычно имеют исходный код своих операционных систем, у них меньше необходимости в полной виртуализации в этой области. Вместо этого преимущества паравиртуализации в производительности делают ее предпочтительной технологией виртуализации. Тем не менее, ARM и MIPS недавно добавили полную поддержку виртуализации в качестве опции IP и включили ее в свои новейшие высокопроизводительные процессоры и версии архитектуры, такие как ARM Cortex-A15 MPCore и ARMv8 EL2.
Другие различия между виртуализацией в серверных/настольных и встроенных средах включают требования к эффективному совместному использованию ресурсов между виртуальными машинами, высокоскоростную связь между виртуальными машинами с малой задержкой, глобальный взгляд на планирование и управление питанием, а также детальный контроль информации. течет. [ 14 ]
Последствия для безопасности
[ редактировать ]Использование технологии гипервизора вредоносными программами и руткитами, устанавливающими себя в качестве гипервизора ниже операционной системы, известное как гиперджекинг , может затруднить их обнаружение, поскольку вредоносное ПО может перехватывать любые операции операционной системы (например, ввод пароля) без антивирусное программное обеспечение обязательно обнаружит его (поскольку вредоносное ПО работает под всей операционной системой). Реализация концепции предположительно произошла в лабораторном рутките SubVirt (разработанном совместно Microsoft и Мичиганского университета). исследователями [ 15 ] ), а также в пакете вредоносного ПО Blue Pill . Однако такие утверждения оспариваются другими, которые утверждают, что можно было бы обнаружить наличие руткита на основе гипервизора. [ 16 ]
В 2009 году исследователи из Microsoft и Университета штата Северная Каролина продемонстрировали антируткит уровня гипервизора под названием Hooksafe режима ядра , который может обеспечить общую защиту от руткитов . [ 17 ]
Примечания
[ редактировать ]- ^ super- от латинского слова, означающего «выше», а гипер- от родственного термина в древнегреческом языке ( ὑπέρ- ), также означающего «выше» или «над» .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б Гольдберг, Роберт П. (1973). Архитектурные принципы виртуальных компьютерных систем (PDF) (технический отчет). Гарвардский университет. ЭСД-ТР-73-105.
- ^ Бернард Голден (2011). Виртуализация для чайников . п. 54 .
- ^ «Как появился термин «гипервизор»?» .
- ^ Гэри Р. Оллред (май 1971 г.). Интегрированная эмуляция System/370 под OS и DOS (PDF) . 1971 года Весенняя совместная компьютерная конференция . Том. 38. АФИПС Пресс. п. 164. дои : 10.1109/AFIPS.1971.58 . Проверено 12 июня 2022 г.
- ^ Мейер, Шеннон (2008). «Виртуализация систем IBM: серверы, хранилища и программное обеспечение» (PDF) . стр. 2, 15, 20 . Проверено 22 декабря 2015 г.
- ^ Декстер, Майкл. «Практический бхайв» . CallForTesting.org . Проверено 24 сентября 2013 г.
- ^ Грациано, Чарльз (2011). Анализ производительности гипервизоров Xen и KVM для размещения проекта Xen Worlds Project (дипломная работа MS). Университет штата Айова. дои : 10.31274/etd-180810-2322 . hdl : 20.500.12876/26405 . Проверено 16 октября 2022 г.
- ^ См . Историю CP/CMS для моделирования виртуального оборудования при разработке System /370.
- ^ Лофтус, Джек (19 декабря 2005 г.). «Виртуализация Xen быстро становится «убийственным приложением» с открытым исходным кодом » . ТехТаржет . Проверено 26 октября 2015 г.
- ^ «Wind River будет поддерживать революционный многопоточный процессор нового поколения UltraSPARC T1» . Отдел новостей Wind River (пресс-релиз). Аламеда, Калифорния. 1 ноября 2006 года. Архивировано из оригинала 10 ноября 2006 года . Проверено 26 октября 2015 г.
- ^ Фрич, Лотар; Хусейки, Рани; Алькасар, Аммар. Дополнительные и альтернативные технологии доверенных вычислений (TC-Erg./-A.), Часть 1, Исследование по поручению Федерального управления информационной безопасности Германии (BSI) (PDF) (Отчет). Архивировано из оригинала (PDF) 7 июня 2020 г. Проверено 28 февраля 2011 г.
- ^ «Знакомство с Бохсом» . bochs.sourceforge.io . Проверено 17 апреля 2023 г.
- ^ Штробль, Мариус (2013). Виртуализация для надежных встраиваемых систем . Мюнхен: GRIN Publishing GmbH. стр. 5–6. ISBN 978-3-656-49071-5 . Проверено 7 марта 2015 г.
- ^ Гернот Хейзер (апрель 2008 г.). «Роль виртуализации во встраиваемых системах» . Учеб. 1-й семинар по изоляции и интеграции встраиваемых систем (IIES'08) . стр. 11–16. Архивировано из оригинала 21 марта 2012 года . Проверено 8 апреля 2009 г.
- ^ «SubVirt: внедрение вредоносного ПО на виртуальных машинах» (PDF) . Мичиганский университет , Microsoft . 3 апреля 2006 года . Проверено 15 сентября 2008 г.
- ^ «Развенчание мифа о синих таблетках» . Виртуализация.информация. 11 августа 2006. Архивировано из оригинала 14 февраля 2010 года . Проверено 10 декабря 2010 г.
- ^ Ван, Чжи; Цзян, Сюсянь; Цуй, Вэйдун; Нин, Пэн (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 г.