Пример Defer to Kernel

Пример Defer to Kernel демонстрирует использование паттернов Defer to Kernel и Policy Decision Point.

Пример Defer to Kernel содержит три пользовательские сущности: PictureManager, ValidPictureClient и NonValidPictureClient.

В этом примере сущности ValidPictureClient и NonValidPictureClient обращаются к сущности PictureManager для получения информации.

Только сущности ValidPictureClient разрешено взаимодействие с сущностью PictureManager.

Ядро KasperskyOS гарантирует изоляцию сущностей.

Контроль взаимодействия сущностей в KasperskyOS вынесен в модуль безопасности Kaspersky Security Module. Эта подсистема анализирует каждый отправляемый запрос и ответ и на основе заданной политики безопасности выносит решение: разрешить или запретить его доставку.

Политика безопасности в примере Defer to Kernel имеет следующие особенности:

Динамическое создание IPC-каналов

Пример также демонстрирует возможность динамического создания IPC-каналов между сущностями. Динамическое создание IPC-каналов осуществляется с помощью сервера имен – специального сервиса ядра, представленного сущностью NameServer. Возможность динамического создания IPC-каналов позволяет изменять топологию взаимодействия сущностей "на лету".

Любая сущность, которой разрешено взаимодействие с NameServer по IPC, может зарегистрировать в сервере имен свои интерфейсы. Другая сущность может запросить у сервера имен зарегистрированные интерфейсы, после чего осуществить подключение к нужному интерфейсу.

При этом все взаимодействия по IPC (даже созданные динамически) контролируются с помощью модуля безопасности.

Сборка примера

Сборка примера осуществляется с помощью системы сборки CMake, входящей в состав KasperskyOS Community Edition.

Файлы, содержащие код примера и скрипты для сборки, находятся по следующему пути:

/opt/KasperskyOS-Community-Edition-<version>/examples/defer_to_kernel

Для сборки и запуска примера необходимо выполнить следующий скрипт:

/opt/KasperskyOS-Community-Edition-<version>/examples/defer_to_kernel/cross-build.sh

В этом разделе

Файлы описаний в примере Defer to Kernel

Реализация сущности PictureManager в примере Defer to Kernel

Реализация сущности ValidPictureClient в примере Defer to Kernel

Реализация сущности NonValidPictureClient в примере Defer to Kernel

Общие заголовочные файлы в примере Defer to Kernel

В начало