Гипервизор реализован в виде модуля для ядра Linux и обеспечивает виртуализацию на уровне ядра. Компоненты для гостевых систем уже включены в состав основного ядра Linux. Для управления изоляцией используются предоставляемые современными CPU аппаратные механизмы виртуализации. Отличительными особенностями Jailhouse являются легковесная реализация и ориентация на привязку виртуальных машин к фиксированному CPU, области ОЗУ и аппаратным устройствам. Такой подход позволяет на одном физическом многопроцессорном сервере обеспечить работу нескольких независимых виртуальных окружений, каждое из которых закреплено за своим процессорным ядром.
При жесткой привязке к CPU накладные расходы от работы гипервизора сводятся к минимуму и существенно упрощается его реализация, так как нет необходимости выполнения сложного планировщика распределения ресурсов — выделение отдельного ядра CPU позволяет гарантировать отсутствие выполнения на данном CPU других задач. Плюсом подобного подхода является возможность обеспечить гарантированный доступ к ресурсам и предсказуемую производительность, что делает Jailhouse подходящим решением для создания задач, выполняемых в режиме реального времени. Минусом является ограниченная масштабируемость, упирающаяся в число ядер CPU.
В терминологии Jailhouse виртуальные окружения именуются «камерами» (cell, в контексте jailhouse). Внутри камеры система выглядит как однопроцессорный сервер, показывающий производительность близкую к производительности выделенного ядра CPU. В камере может быть запущено окружение произвольной операционной системы, а также урезанные окружения для запуска одного приложения или специально подготовленные отдельные приложения, предназначенные для решения задач реального времени. Конфигурация задаётся в .cell-файлах, определяющих выделяемые окружению CPU, регионы памяти и порты ввода/вывода.
В новом выпуске
- Добавлена поддержка платформ Raspberry Pi 4 Model B и Texas Instruments J721E-EVM;
- Переработано устройство ivshmem, применяемое для организации взаимодействия между ячейками. Поверх нового ivshmem можно реализовать транспорт для VIRTIO;
- Реализована возможность отключения создания больших страниц памяти (hugepage) для блокирования уязвимости CVE-2018-12207 в процессорах Intel, которая позволяет непривилегированному атакующему инициировать отказ в обслуживании, приводящий к зависанию системы в состоянии «Machine Check Error»;
- Для систем с процессорами ARM64 реализована поддержка SMMUv3 (System Memory Management Unit) и TI PVU (Peripheral Virtualization Unit). Для изолированных окружений, запускаемых поверх оборудования (bare-metal), добавлена поддержка PCI;
- На системах x86 для коревых камер реализована возможность включения предоставляемого процессорами Intel режима CR4.UMIP (User-Mode Instruction Prevention), позволяющего запретить выполнение в пространстве пользователя некоторых инструкций, таких как SGDT, SLDT, SIDT, SMSW и STR, которые могут применяться в атаках, нацеленных на повышение привилегий в системе.
Источник: http://www.opennet.ru/opennews/art.shtml?num=52310