+38/044/257-2444
+38/067/502-3306
+38/050/370-3627
Новости

Siemens представила выпуск свободного гипервизора Jailhouse 0.10

Siemens представила выпуск свободного гипервизора Jailhouse 0.10

Siemens представила выпуск свободного гипервизора Jailhouse 0.10, компоненты для гостевых систем которого уже включены в состав основного ядра Linux. Гипервизор поддерживает работу на системах 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 виртуальные окружения именуются "камерами" (cell). Внутри камеры система выглядит как однопроцессорный сервер, показывающий производительность близкую к производительности выделенного ядра CPU. В камере может быть запущено окружение произвольной операционной системы, урезанные окружения для запуска одного приложения и специально подготовленные отдельные приложения, предназначенные для решения задач реального времени. Конфигурация задаётся в .cell-файлах, определяющих выделяемые окружению CPU, регионы памяти и порты ввода/вывода.

В новом выпуске

  • Для защиты от атак Spectre/L1TF задействована система привязанных к CPU таблиц страниц памяти, позволяющая не допустить утечку данных из камер в момент выполнения кода гипервизора;
  • Добавлена поддержка фреймбуфера EFI, который может выступать в роли альтернативы UART;
  • Предложен новый биндинг на языке Python - "pyjailhouse", предоставляющий API для управления гипервизором;
  • Удалён код для поддержки VGA (рекомендуется использовать фреймбуфер EFI) и платформы VExpress (виртуальный ARMv7 для QEMU);
  • Команда "jailhouse hardware check" теперь не требует наличия конфигурации системы;
  • В демонстрационных окружениях (inmates) все настройки, выполняемые на этапе сборки, преобразованы в файлы конфигурации камер и runtime-параметры запуска. В обработчиках прерываний для процессоров ARM обеспечено сохранение/восстановление регистров;
  • Для платформ ARM представлена базовая поддержка SMCCC (SMC Calling Convention);
  • Добавлена поддержка более 8 ARM CPU с GICv3 (ARM Generic Interrupt Controller);

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

Другие новости