Компания Siemens выпустила гипервизор Jailhouse 0.8
28 декабря 2017 года
Представлен свободный гипервизор Jailhouse 0.8, развиваемый компанией Siemens. Гипервизор поддерживает работу на системах x86_64 с расширениями VMX+EPT или SVM+NPT (AMD-V), а также на процессорах ARMv7 (Banana Pi, NVIDIA Jetson TK1, Versatile Express с Cortex-A15 или A7) и ARMv8/ARM64 (AMD Seattle, LeMaker HiKey, NVIDIA Jetson TX1, Xilinx ZCU102 ) с расширениями для виртуализации. Код проекта распространяется под лицензией GPLv2.
Гипервизор реализован в виде модуля для ядра Linux и обеспечивает виртуализацию на уровне ядра. Для управления изоляцией используются предоставляемые современными CPU аппаратные механизмы виртуализации. Отличительными особенностями Jailhouse являются легковесная реализация и ориентация на привязку виртуальных машин к фиксированному CPU, области ОЗУ и аппаратным устройствам. Такой подход позволяет на одном физическом многопроцессорном сервере обеспечить работу нескольких независимых виртуальных окружений, каждое из которых закреплено за своим процессорным ядром.
При жесткой привязке к CPU накладные расходы от работы гипервизора сводятся к минимуму и существенно упрощается его реализация, так как нет необходимости выполнения сложного планировщика распределения ресурсов - выделение отдельного ядра CPU позволяет гарантировать отсутствие выполнения на данном CPU других задач. Плюсом подобного подхода является возможность обеспечить гарантированный доступ к ресурсам и предсказуемую производительность, что делает Jailhouse отличным решением для создания решений виртуализации для задач режима реального времени. Минусом является ограниченная масштабируемость, упирающаяся в число ядер CPU.
В терминологии Jailhouse виртуальные окружения именуются ячейками. Внутри ячейки система выглядит как однопроцессорный сервер, показывающий производительность близкую к производительности выделенного ядра CPU. В ячейке может быть запущено окружение произвольной операционной системы, урезанные окружения для запуска одного приложения и специально подготовленные отдельные приложения, предназначенные для решения задач реального времени. Конфигурация задаётся в .cell-файлах, определяющих выделяемые окружению CPU, регионы памяти и порты ввода/вывода.
В новом выпуске:
- Добавлена поддержка платформ Marvell ESPRESSOBin, Emtrion emCON-RZ/G1E и emCON-RZ/G1M, а также возможность работы в виртуальной машине QEMU ARM64;
- Библиотека окружений (inmate) переведена на двойную лицензию (GPLv2 или 2-clause BSD), что позволяет использовать её с кодом любых гостевых систем;
- Перемещаемые окружения по умолчанию теперь размещаются по адресу 0 и для систем x86;
- В протокол взаимодействия между гипервизором и гостевым окружением добавлена опционалная возможность установки таймаута;
- Для платформы ARM64 добавлена поддержка контроллеров прерываний на базе архитектуры GICv3, таких как ARM CoreLink GIC-500. Для ARM и ARM64 обеспечен автоматический выбор версии GIC (v2 или v3);
- Для систем x86 включено игнорирование некорректного доступа к IOAPIC (для использования в некорневых ячейках) и налажен сброс IOAPIC при запуске и завершении работы ячейки; расширено число поддерживаемых инструкций MMIO; организован проброс в окружения частот TSC и APIC, откалиброванных в корневой ячейке;
- За пределами основного репозитория развивается несколько инициатив:
продвижение в основной состав ядра Linux кода для поддержки некорневых ячеек для систем x86, интеграция поддержки Jailhouse в Zephyr RTOS, создание сценариев использования Jailhouse в Yocto на платформе Banana Pi.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.