Встроенный гипервизор

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

Встроенный гипервизор - это гипервизор, который поддерживает требования встроенного системы.

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

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

Содержание
  • 1 Предпосылки
    • 1.1 Гипервизор
      • 1.1.1 Классификация
    • 1.2 Встроенный гипервизор
  • 2 Реализация
    • 2.1 Дизайн гипервизора
    • 2.2 Требования к ресурсам
    • 2.3 Связь с ВМ
    • 2.4 Требования к оборудованию
  • 3 Сценарии использования
  • 4 Коммерческие продукты
  • 5 Ссылки
Предпосылки

Виртуализация программного обеспечения была главной темой в корпоративном пространстве с конца 1960-х годов, но только с начала 2000-х годов ее использование появилось во встроенных системах. Использование виртуализации и ее реализация в виде гипервизора во встроенных системах сильно отличаются от корпоративных приложений. Эффективная реализация встроенного гипервизора должна решать ряд проблем, специфичных для таких приложений. Эти проблемы включают высокоинтегрированный характер встроенных систем, потребность в изолированных функциональных блоках внутри системы для быстрой связи, потребность в детерминированной производительности в реальном времени, целевая среда с ограниченными ресурсами и широкий спектр требований безопасности и надежности.

Гипервизор

A гипервизор предоставляет одну или несколько программных сред виртуализации, в которых может работать другое программное обеспечение, включая операционные системы, с видимостью полного доступа к базовому аппаратному обеспечению системы, где на самом деле такой доступ находится под полным контролем гипервизора. Эти виртуальные среды называются виртуальными машинами (ВМ), и гипервизор обычно поддерживает несколько ВМ, управляемых одновременно.

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

Гипервизоры обычно классифицируются как тип 1 или тип 2, в зависимости от того, работает ли гипервизор исключительно в режиме супервизора или в привилегированном режиме (тип 1) или само размещается в операционной системе как обычное приложение (тип 2).

Гипервизоры типа 1 управляют ключевыми системными ресурсами, необходимыми для поддержания контроля над виртуальными машинами, и обеспечивают минимальную надежную вычислительную базу (TCB). Гипервизоры типа 2 обычно запускаются как приложение в операционной системе более общего назначения, полагаясь на службы ОС для управления системными ресурсами. В настоящее время расширения ядра часто загружаются, чтобы воспользоваться преимуществами оборудования с поддержкой виртуализации.

Встроенный гипервизор

Встроенный гипервизор чаще всего представляет собой гипервизор типа 1, который поддерживает требования разработки встроенных систем. См. Ссылки и для более подробного обсуждения.

Эти требования кратко изложены ниже.

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

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

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

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

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

Дизайн гипервизора

Реализации для приложений встраиваемых систем чаще всего основывались на небольших микроядрах и ядрах разделения, со встроенной виртуализацией как неотъемлемая способность. Это было введено в PikeOS в 2005 году. Примеры этих подходов были разработаны такими компаниями, как Open Kernel Labs (микроядро, за которым следует ядро ​​разделения) и LynuxWorks (разделительное ядро). VirtualLogix, по-видимому, придерживается позиции, согласно которой подход, основанный на выделенном мониторе виртуальной машины (VMM), был бы еще меньше и более эффективным. Этот вопрос является предметом продолжающихся дискуссий. Однако главный вопрос одинаков для всех сторон обсуждения - скорость и размер реализации (для заданного уровня функциональности) имеют большое значение. Например: «... гипервизоры для встраиваемых систем должны поддерживать работу в реальном времени, а также ограничивать ресурсы».

Требования к ресурсам

Встроенные системы обычно сильно ограничены в ресурсах из-за стоимости и технических ограничений оборудования. Поэтому важно, чтобы встроенный гипервизор был максимально эффективным. Конструкции на основе микроядра и ядра разделения позволяют создавать небольшие и эффективные гипервизоры. Таким образом, встроенные гипервизоры обычно имеют объем памяти от нескольких десятков до нескольких сотен килобайт, в зависимости от эффективности реализации и уровня предоставляемых функций. Реализация, требующая несколько мегабайт памяти (или больше), обычно неприемлема.

С помощью небольшого TCB встроенного гипервизора типа 1 систему можно сделать очень безопасной и надежной. Стандартные методы разработки программного обеспечения, такие как проверки кода и систематическое тестирование, могут использоваться для уменьшения количества ошибок в такой небольшой кодовой базе до крошечной доли дефектов, которые должны ожидаться для комбинации гипервизора и гостевой ОС, которая может быть Всего 100 000–300 000 строк.

Связь с виртуальными машинами

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

Механизм межпроцессного взаимодействия (IPC) может использоваться для обеспечения этих функций, а также для вызова всех системных служб и реализован таким образом, чтобы гарантировать, что требуемый уровень виртуальной машины изоляция сохраняется. Кроме того, из-за значительного влияния на производительность системы такой механизм IPC должен быть оптимизирован для минимальной задержки.

Требования к оборудованию

Встроенный гипервизор должен полностью контролировать системные ресурсы, включая доступ к памяти, чтобы гарантировать, что программное обеспечение не сможет вырваться из виртуальной машины. Поэтому гипервизору требуется, чтобы целевой CPU обеспечивал поддержку управления памятью (обычно с использованием MMU ). Многие встроенные процессоры, в том числе ARM, MIPS и PowerPC, последовали примеру поставщиков настольных ПК и серверных микросхем, добавив аппаратную поддержку для виртуализации. Однако все еще существует значительная часть встроенных процессоров, которые не обеспечивают такой поддержки, и требуется гипервизор, поддерживающий паравиртуализацию.

Процессоры ARM примечательны тем, что большинство процессоров их прикладного класса поддерживают технологию ARM TrustZone, которая обеспечивает аппаратную поддержку одной привилегированной и одной непривилегированной виртуальной машины. Обычно минимальная операционная система Trusted Execution Environment (TEE) работает в безопасном мире, а собственное ядро ​​- в небезопасном мире.

Примеры использования

Вот некоторые из наиболее распространенных вариантов использования встроенного гипервизора:

1. Независимость от ОС

. Разработчики встраиваемых систем могут иметь множество драйверов оборудования и системных служб, специфичных для целевой платформы. Если на платформе требуется поддержка более чем одной ОС, одновременно или последовательно с использованием общей конструкции оборудования, встроенный гипервизор может значительно упростить задачу. Такие драйверы и системные службы могут быть реализованы только один раз для виртуализированной среды; эти службы затем доступны для любой размещенной ОС. Этот уровень абстракции также позволяет разработчику встроенных систем внедрять или изменять драйвер или службу в аппаратном или программном обеспечении в любой момент, не будучи очевидным для размещенной ОС.

2. Поддержка нескольких операционных систем на одном процессоре

Обычно это используется для запуска операционной системы реального времени (RTOS) для низкоуровневых функций реального времени (таких как стек связи), пока в то же время под управлением ОС общего назначения (GPOS), например Linux или Windows, для поддержки пользовательских приложений, таких как веб-браузер или календарь. Целью может быть обновление существующей конструкции без дополнительной сложности второго процессора или просто минимизация ведомости материалов (BoM).

3. Безопасность системы

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

4. Надежность системы

Инкапсуляция компонентов подсистемы в виртуальную машину гарантирует, что отказ любой подсистемы не может повлиять на другие подсистемы. Эта инкапсуляция предотвращает распространение ошибок из подсистемы одной виртуальной машины в подсистему другой виртуальной машины, повышая надежность. Это также может позволить подсистеме автоматически отключаться и перезапускаться при обнаружении неисправности. Это может быть особенно важно для встроенных драйверов устройств, так как именно здесь наблюдается самая высокая плотность состояний сбоя и, таким образом, является наиболее частой причиной сбоя ОС и нестабильности системы. Это также позволяет инкапсулировать операционные системы, которые не обязательно были построены в соответствии со стандартами надежности, требуемыми для новой конструкции системы.

5. Динамическое обновление системного программного обеспечения

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

6. Повторное использование унаследованного кода

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

Если доступен доступ к исходному коду операционной системы, паравиртуализация обычно используется для виртуализации ОС на процессорах без поддержки аппаратной виртуализации, и, таким образом, приложения, поддерживаемые ОС, также могут работать без изменений. и без повторной компиляции в конструкции новой аппаратной платформы.

Даже без доступа к исходному тексту унаследованный двоичный код может выполняться в системах, работающих на процессорах с поддержкой аппаратной виртуализации, таких как технологии AMD-V, Intel VT и новейшие процессоры ARM с поддержкой виртуализации. Унаследованный двоичный код может выполняться в виртуальной машине без изменений, при этом все сопоставления ресурсов обрабатываются встроенным гипервизором, если аппаратное обеспечение системы обеспечивает эквивалентную функциональность.

7. Защита IP

Ценный проприетарный IP может потребовать защиты от кражи или неправомерного использования, когда встроенная платформа отправляется для дальнейшей разработки (например) заказчиком OEM. Встроенный гипервизор позволяет ограничить доступ других компонентов программного обеспечения системы к определенной части системы, содержащей IP-адрес, который необходимо защитить.

8. Разделение лицензий на программное обеспечение

IP-адрес программного обеспечения, работающий по одной схеме лицензирования, может быть отделен от IP-адреса другого программного обеспечения, работающего по другой схеме. Например, встроенный гипервизор может обеспечить изолированную среду выполнения для проприетарного программного обеспечения, совместно использующего процессор с программным обеспечением с открытым исходным кодом, в соответствии с GPL.

9. Миграция приложений с одноядерных систем на многоядерные

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

Коммерческие продукты
  • от Star Lab Corp.
  • Гипервизор для разных ОС - позволяет приложениям запускаться на одной платформе ОС от MapuSoft Technologies, Inc.
  • OKL4 Гипервизор - поддерживает интеллектуальные подключенные устройства на базе ARM (встроенные, мобильные). Используется в приложениях, требующих защиты и безопасности. Коммерчески поддерживается Cog Systems.
Ссылки
Последняя правка сделана 2021-05-19 08:28:18
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте