Общая схема сборки
Для того чтобы собрать образ решения, необходимо выполнить следующие действия:
- Подготовить EDL-, CDL- и IDL-описания прикладных программ, а также файл init-описания (по умолчанию
init.yaml) и файлы с описанием политики безопасности решения (по умолчаниюsecurity.psl).При сборке с
CMakeEDL-описание можно генерировать используя командуgenerate_edl_file(). - Для всех программ, кроме системных программ, поставляемых в составе KasperskyOS Community Edition, сгенерировать файлы *.edl.h.
- При сборке с
CMakeдля этого используются командуnk_build_edl_files(). - При сборке без
CMakeдля этого необходимо использовать компилятор NK.
- При сборке с
- Для программ, реализующих собственный IPC-интерфейс, сгенерировать код транспортных методов и типов, используемых для формирования, отправки, приема и обработки IPC-сообщений.
- При сборке с
CMakeдля этого используются командыnk_build_idl_files(),nk_build_cdl_files(). - При сборке без
CMakeдля этого необходимо использовать компилятор NK.
- При сборке с
- Собрать все программы, входящие в решение, при необходимости скомпоновав их с транспортными библиотеками системных или прикладных программ. Для сборки прикладных программ, реализующих собственный IPC-интерфейс, потребуются сгенерированный на шаге 3 код, содержащий транспортные методы и типы.
- При сборке с
CMakeдля этого используются стандартные команды сборки. Необходимые настройки кросс-компиляции производятся автоматически. - При сборке без
CMakeдля этого необходимо вручную использовать кросс-компиляторы, входящие в состав KasperskyOS Community Edition.
- При сборке с
- Собрать инициализирующую программу Einit.
- При сборке с
CMakeпрограммаEinitсобирается в процессе сборки образа решения командамиbuild_kos_qemu_image()иbuild_kos_hw_image(). - При сборке без
CMakeдля генерации кода программыEinitнеобходимо использовать утилиту einit. ПрограммуEinitзатем необходимо собрать с помощью кросс-компилятора, поставляемого в KasperskyOS Community Edition.
- При сборке с
- Собрать модуль Kaspersky Security Module.
- При сборке с
CMakeмодуль безопасности собирается в процессе сборки образа решения командамиbuild_kos_qemu_image()иbuild_kos_hw_image(). - При сборке без
CMakeдля этого необходимо использовать скриптmakekss.
- При сборке с
- Создать образ решения.При сборке с
CMakeдля этого используются командыbuild_kos_qemu_image()иbuild_kos_hw_image().
Пример 1
Для простейшего примера hello, входящего в состав KasperskyOS Community Edition, в котором содержится одна прикладная программа, не предоставляющая служб, схема сборки выглядит следующим образом:
Схема сборки примера hello
Пример 2
Пример echo, входящий в состав KasperskyOS Community Edition, описывает простейший случай взаимодействия двух программ с помощью механизма IPC. Чтобы организовать такое взаимодействие, потребуется реализовать на сервере интерфейс с методом Ping и "поместить" службу Ping в новый компонент (например, Responder), а экземпляр этого компонента – в EDL-описание программы Server.
В случае наличия в решении программ, использующих механизм IPC, схема сборки выглядит следующим образом:
Схема сборки примера echo