Общая схема сборки
Для того чтобы собрать образ решения, необходимо выполнить следующие действия:
- Подготовить EDL-, CDL- и IDL-описания прикладных программ, а также файл init-описания (по умолчанию
init.yaml
) и файлы с описанием политики безопасности решения (по умолчаниюsecurity.psl
).При сборке с
CMake
EDL-описание можно генерировать используя команду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()
. - При сборке без
CMake
для этого необходимо использовать скриптmakeimg
.
- При сборке с
Пример 1
Для простейшего примера hello
, входящего в состав KasperskyOS Community Edition, в котором содержится одна прикладная программа, не предоставляющая служб, схема сборки выглядит следующим образом:
Пример 2
Пример echo
, входящий в состав KasperskyOS Community Edition, описывает простейший случай взаимодействия двух программ с помощью механизма IPC. Чтобы организовать такое взаимодействие, потребуется реализовать на сервере интерфейс с методом Ping
и "поместить" службу Ping
в новый компонент (например, Ping
), а экземпляр этого компонента – в EDL-описание программы Server
.
В случае наличия в решении программ, использующих механизм IPC, схема сборки выглядит следующим образом: