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

30 сентября 2026

ID cmake_common_build_scheme

Решение состоит из системного ПО (включая ядро KasperskyOS, модуль безопасности Kaspersky Security Module и системные программы) и прикладных программ. Прикладные программы предназначены для взаимодействия с пользователем решения и выполнения пользовательских задач. Прикладные программы не поставляются в составе KasperskyOS Community Edition SDK. Системные программы создают инфраструктуру для прикладных программ (например, обеспечивают работу с аппаратурой, поддерживают механизм IPC, реализуют файловые системы и сетевые протоколы). Набор системных программ (в том числе драйверов) поставляется в составе KasperskyOS Community Edition SDK в виде исполняемых файлов. Также поставляются транспортные библиотеки и транспортный код для использования служб системных программ и компоненты системных программ в виде библиотек. При необходимости вы можете создать собственные системные программы, в том числе на основе поставляемых библиотек. Инициализирующую программу, а также модуль безопасности Kaspersky Security Module нужно создавать для каждого конкретного решения. Для их создания система сборки использует генераторы исходного кода. Образ ядра KasperskyOS поставляется в составе KasperskyOS Community Edition SDK.

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

  1. Создать формальные спецификации компонентов решения для всех программ, кроме поставляемых системных программ.

    Формальные спецификации компонентов решения для поставляемых системных программ включены в KasperskyOS Community Edition SDK. Также KasperskyOS Community Edition SDK содержит файлы формальных спецификаций компонентов решения для компонентов системных программ, поставляемых в виде библиотек. Поэтому для системной программы, которая создается на основе поставляемых библиотек, не требуется создавать все файлы формальной спецификации компонента решения, так как часть файлов, соответствующая используемым библиотекам, содержится в KasperskyOS Community Edition SDK.

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

  2. Создать описание политики безопасности решения.
  3. Сгенерировать транспортный код.

    Чтобы выполнить этот шаг, нужно использовать CMake-команды nk_build_*dl_files () и/или add_nk_*dl (). Входными данными для создания транспортного кода являются формальные спецификации компонентов решения. Транспортный код нужно генерировать для программ, которые предоставляют службы и/или используют службы других программ, за исключением случаев, когда требуемые транспортные библиотеки и/или транспортный код поставляются в составе KasperskyOS Community Edition SDK. Для инициализирующей программы Einit не требуется генерировать транспортный код.

  4. Выполнить сборку исполняемых файлов и библиотек.

    Чтобы выполнить этот шаг, нужно использовать стандартные CMake-команды. Если программа предоставляет службы и/или использует службы других программ, то в исходный код нужно включить транспортный код и/или скомпоновать исполняемый файл с транспортными библиотеками.

  5. Упаковать прикладные программы в KPA-пакеты используя CMake-библиотеку kpa.
  6. Создать файлы настроек initial_install.json и system_services.json для системной программы ServiceManager. Подробнее см. "Системная программа ServiceManager".
  7. Выполнить сборку дополнительного образа дополнительного образа (VendorROMFS). Подробнее см. "Архитектура и запуск решения на базе KasperskyOS".
  8. Выполнить сборку корневой файловой системы rootfs, включающей в себя:
    • содержимое архива, содержащего библиотеки, файлы и KPA-пакеты необходимые для работы системных программ из загрузочного образа InitROMFS;
    • файлы и библиотеки, необходимые для работы системных программ из образа VendorROMFS;
    • KPA-пакеты всех прикладных программ, входящих в решение;
    • Файлы настроек системной программы ServiceManager, которая отвечает за установку и запуск KPA-пакетов.

    Чтобы выполнить этот шаг, необходимо использовать CMake-библиотеку build_vendor_rom(). Примеры использования см. в скриптах сборки ./einit/CMakeLists.txt в примерах в составе SDK.

  9. Создать загрузочный образ на базе KasperskyOS используя CMake-команду generate_qemu_target() для создания образа для запуска под QEMU или build_sd_image() для создания образа для запуска на аппаратной платформе.

    Примеры использования см. в скриптах сборки ./einit/CMakeLists.txt в примерах в составе SDK.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!