Общая схема сборки

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

  1. Подготовить EDL-, CDL- и IDL-описания прикладных программ, а также файл init-описания (по умолчанию init.yaml) и файлы с описанием политики безопасности решения (по умолчанию security.psl).

    При сборке с CMake EDL-описание можно генерировать используя команду generate_edl_file().

  2. Для всех программ, кроме системных программ, поставляемых в составе KasperskyOS Community Edition, сгенерировать файлы *.edl.h.
  3. Для программ, реализующих собственный IPC-интерфейс, сгенерировать код транспортных методов и типов, используемых для формирования, отправки, приема и обработки IPC-сообщений.
  4. Собрать все программы, входящие в решение, при необходимости скомпоновав их с транспортными библиотеками системных или прикладных программ. Для сборки прикладных программ, реализующих собственный IPC-интерфейс, потребуются сгенерированный на шаге 3 код, содержащий транспортные методы и типы.
    • При сборке с CMake для этого используются стандартные команды сборки. Необходимые настройки кросс-компиляции производятся автоматически.
    • При сборке без CMake для этого необходимо вручную использовать кросс-компиляторы, входящие в состав KasperskyOS Community Edition.
  5. Собрать инициализирующую программу Einit.
    • При сборке с CMake программа Einit собирается в процессе сборки образа решения командами build_kos_qemu_image() и build_kos_hw_image().
    • При сборке без CMake для генерации кода программы Einit необходимо использовать утилиту einit. Программу Einit затем необходимо собрать с помощью кросс-компилятора, поставляемого в KasperskyOS Community Edition.
  6. Собрать модуль Kaspersky Security Module.
  7. Создать образ решения.

Пример 1

Для простейшего примера hello, входящего в состав KasperskyOS Community Edition, в котором содержится одна прикладная программа, не предоставляющая служб, схема сборки выглядит следующим образом:

Пример 2

Пример echo, входящий в состав KasperskyOS Community Edition, описывает простейший случай взаимодействия двух программ с помощью механизма IPC. Чтобы организовать такое взаимодействие, потребуется реализовать на сервере интерфейс с методом Ping и "поместить" службу Ping в новый компонент (например, Ping), а экземпляр этого компонента – в EDL-описание программы Server.

В случае наличия в решении программ, использующих механизм IPC, схема сборки выглядит следующим образом:

В начало