KasperskyOS Community Edition 1.3
- Что нового
 - Введение
 - О KasperskyOS Community Edition
 - Обзор KasperskyOS
 - Краткое руководство разработчика решений на базе KasperskyOS
 - Начало работы
 - Разработка под KasperskyOS
 - KasperskyOS API
- Коды возврата
 - Библиотека libkos
- Управление дескрипторами (handle_api.h)
 - Управление виртуальной памятью (vmm_api.h)
 - Выделение и освобождение памяти (alloc.h)
 - Использование DMA (dma.h)
 - Ввод-вывод через память (mmio.h)
 - Управление обработкой прерываний (irq.h)
 - Управление потоками исполнения (высокоуровневый API thread.h)
 - Управление потоками исполнения (низкоуровневый API thread_api.h)
 - Управление процессами (высокоуровневый API task.h)
 - Управление процессами (низкоуровневый API task_api.h)
 - Инициализация IPC-транспорта для межпроцессного взаимодействия и управление обработкой IPC-запросов (transport-kos.h, transport-kos-dispatch.h)
 - Инициализация IPC-транспорта для обращения к модулю безопасности (transport-kos-security.h)
 - Генерация случайных чисел (random_api.h)
 - Получение и изменение значений времени (time_api.h)
 - Использование уведомлений (notice_api.h)
 - Динамическое создание IPC-каналов (cm_api.h, ns_api.h)
 - Использование примитивов синхронизации (event.h, mutex.h, rwlock.h, semaphore.h, condvar.h)
 - Управление изоляцией памяти для ввода-вывода (iommu_api.h)
 - Использование очередей (queue.h)
 - Использование барьеров памяти (barriers.h)
 - Выполнение системных вызовов (syscalls.h)
 - Прерывание IPC (ipc_api.h)
 - Использование сессий (session.h)
 - Использование объектов KosObject (objects.h)
 - Использование контейнеров объектов KosObject (objcontainer.h)
 - Использование строк KosString (strings.h)
 - Управление драйвером XHCI DbC ядра KasperskyOS (xhcidbg_api.h)
 - Получение данных аудита безопасности (vlog_api.h)
 - Использование фьютексов (sync.h)
 - Получение IPC-дескрипторов и идентификаторов служб для использования статически созданных IPC-каналов (sl_api.h)
 - Управление электропитанием (pm_api.h)
 
 - Поддержка POSIX
 - Получение статистических сведений о системе через API библиотеки libc
 - Динамическое создание IPC-каналов с использованием системной программы DCM
 - Компонент MessageBus
 - Компонент LogRR
 - Компонент ExecutionManager
 - Компонент PackageManager
 
 - Сборка решения на базе KasperskyOS
- Сборка образа решения
 - Общая схема сборки
 - Использование CMake из состава KasperskyOS Community Edition
 - Библиотеки CMake в составе KasperskyOS Community Edition
 - Сборка без использования CMake
 - Использование динамических библиотек
 
 - Отладка программ в решении на базе KasperskyOS
 - Разработка политик безопасности
- Формальные спецификации компонентов решения на базе KasperskyOS
 - Описание политики безопасности решения на базе KasperskyOS
- Общие сведения об описании политики безопасности решения на базе KasperskyOS
 - Синтаксис языка PSL
- Установка глобальных параметров политики безопасности решения на базе KasperskyOS
 - Включение PSL-файлов в описание политики безопасности решения на базе KasperskyOS
 - Включение EDL-файлов в описание политики безопасности решения на базе KasperskyOS
 - Создание объектов моделей безопасности
 - Привязка методов моделей безопасности к событиям безопасности
 - Создание профилей аудита безопасности
 - Создание и выполнение тестов политики безопасности решения на базе KasperskyOS
 - Типы данных в языке PSL
 - Примеры привязок методов моделей безопасности к событиям безопасности
 - Примеры описаний простейших политик безопасности решений на базе KasperskyOS
 - Примеры профилей аудита безопасности
 - Примеры тестов политик безопасности решений на базе KasperskyOS
 
 - Модели безопасности KasperskyOS
- Модель безопасности Pred
 - Модель безопасности Bool
 - Модель безопасности Math
 - Модель безопасности Struct
 - Модель безопасности Base
 - Модель безопасности Regex
 - Модель безопасности HashSet
 - Модель безопасности StaticMap
- Объект модели безопасности StaticMap
 - Правило init модели безопасности StaticMap
 - Правило fini модели безопасности StaticMap
 - Правило set модели безопасности StaticMap
 - Правило commit модели безопасности StaticMap
 - Правило rollback модели безопасности StaticMap
 - Выражение get модели безопасности StaticMap
 - Выражение get_uncommitted модели безопасности StaticMap
 
 - Модель безопасности Flow
 - Модель безопасности Mic
- Объект модели безопасности Mic
 - Правило create модели безопасности Mic
 - Правило delete модели безопасности Mic
 - Правило execute модели безопасности Mic
 - Правило upgrade модели безопасности Mic
 - Правило call модели безопасности Mic
 - Правило invoke модели безопасности Mic
 - Правило read модели безопасности Mic
 - Правило write модели безопасности Mic
 - Выражение query_level модели безопасности Mic
 
 
 - Использование шаблонизации при создании описания политики безопасности решения на базе KasperskyOS
 
 - Методы служб ядра KasperskyOS
- Служба виртуальной памяти
 - Служба ввода-вывода
 - Служба потоков исполнения
 - Служба дескрипторов
 - Служба процессов
 - Служба синхронизации
 - Службы файловой системы
 - Служба времени
 - Служба слоя аппаратных абстракций
 - Служба управления драйвером XHCI DbC ядра KasperskyOS
 - Служба аудита
 - Служба профилирования
 - Служба управления изоляцией памяти для ввода-вывода
 - Служба соединений
 - Служба управления электропитанием
 - Служба уведомлений
 - Служба прерывания IPC
 - Служба взаимодействия со встроенным программным обеспечением аппаратной платформы
 
 - Использование системных программ Klog и KlogStorage для выполнения аудита безопасности
 
 - Паттерны безопасности при разработке под KasperskyOS
 - Разработка драйверов под KasperskyOS
 - Приложения
- Примеры в KasperskyOS Community Edition
- Пример hello
 - Пример echo
 - Пример ping
 - Пример net_with_separate_vfs
 - Пример net2_with_separate_vfs
 - Пример embedded_vfs
 - Пример vfs_extfs
 - Пример multi_vfs_ntpd
 - Пример multi_vfs_dns_client
 - Пример multi_vfs_dhcpcd
 - Пример mqtt_publisher (Mosquitto)
 - Пример mqtt_subscriber (Mosquitto)
 - Пример gpio_input
 - Пример gpio_output
 - Пример gpio_interrupt
 - Пример gpio_echo
 - Пример koslogger
 - Пример pcre
 - Пример messagebus
 - Пример i2c_ds1307_rtc
 - Пример i2c_bm8563_rtc
 - Пример iperf_separate_vfs
 - Пример uart
 - Пример spi_check_regs
 - Пример barcode_scanner
 - Пример watchdog_system_reset
 - Пример shared_libs
 - Пример pal_tests
 - Пример hello_from_rust
 - Пример hello_corrosion
 - Пример mass_storage
 - Пример can_loopback
 - Пример can2can
 - Пример adc_hello
 
 - Сведения о некоторых лимитах, установленных в системе
 
 - Примеры в KasperskyOS Community Edition
 - Лицензирование
 - Предоставление данных
 - Глоссарий
- ASLR
 - Callable-дескриптор
 - CDL
 - DCM-дескриптор
 - DMA
 - EDL
 - Execute-интерфейс
 - GSI
 - IDL
 - Init-описание
 - IPC
 - IPC-дескриптор
 - IPC-запрос
 - IPC-канал
 - IPC-ответ
 - IPC-сообщение
 - IPC-транспорт
 - KasperskyOS
 - KPA-пакет
 - KSM
 - KSS
 - MDL
 - MID
 - MMIO
 - OCap
 - PAL
 - PCB
 - PSL
 - RIID
 - SCP
 - SID
 - SMP
 - TCB
 - TLS
 - Аппаратное прерывание
 - Арена IPC-сообщения
 - Аудит безопасности
 - Барьер памяти
 - Блок управления потоком исполнения
 - Блок управления процессом
 - Блокировка чтения-записи
 - Буфер DMA
 - Буфер MDL
 - Выражение модели безопасности
 - Данные аудита безопасности
 - Дерево наследования дескрипторов
 - Дескриптор
 - Дескриптор арены
 - Дескриптор участка арены
 - Замороженное состояние процесса
 - Идентификатор безопасности
 - Идентификатор метода службы
 - Идентификатор службы
 - Инициализирующая программа
 - Интерфейс безопасности
 - Интерфейс службы
 - Интерфейсный метод
 - Инфериор
 - Клиент
 - Клиентская библиотека компонента решения
 - Клиентский процесс
 - Компонент решения на базе KasperskyOS
 - Контекст безопасности
 - Контекст передачи ресурса
 - Контекст пользовательского ресурса
 - Конфигурация аудита безопасности
 - Критическая секция
 - Локальная память потока исполнения
 - Мандатная ссылка
 - Манифест KPA-пакета
 - Маска прав дескриптора
 - Маска процессоров
 - Маска событий
 - Маска сходства
 - Межпроцессное взаимодействие
 - Метод модели безопасности
 - Метод службы
 - Модель безопасности KasperskyOS
 - Мьютекс
 - Начальное значение генератора случайных чисел
 - Общая системная информация
 - Объект контекста передачи ресурса
 - Объект модели безопасности
 - Описание политики безопасности решения на базе KasperskyOS
 - Память MMIO
 - Паттерн безопасности
 - Политика безопасности решения на базе KasperskyOS
 - Пользовательский ресурс
 - Поставщик ресурсов
 - Поток исполнения
 - Потребитель ресурсов
 - Правило модели безопасности
 - Прерывание MSI
 - Приемник уведомлений
 - Прикладная программа
 - Программа
 - Профиль аудита безопасности
 - Процесс
 - Прямой доступ к памяти
 - Пустой процесс
 - Разыменование дескриптора
 - Рандомизация размещения адресного пространства
 - Рекурсивный мьютекс
 - Ресурс
 - Решение модуля безопасности
 - Решение на базе KasperskyOS
 - Семафор
 - Сервер
 - Серверная библиотека компонента решения
 - Серверный процесс
 - Система паттернов безопасности
 - Системная программа
 - Системный ресурс
 - Служба
 - Слушающий дескриптор
 - Событие
 - Событие безопасности
 - Страница статических соединений
 - Таблица описания памяти
 - Точка рабочих характеристик
 - Транспортная библиотека
 - Транспортный код
 - Транспортный контейнер дескриптора
 - Уровень аудита безопасности
 - Уровень целостности ресурса
 - Уровень целостности субъекта
 - Условная переменная
 - Фиксированная часть IPC-сообщения
 - Формальная спецификация компонента решения на базе KasperskyOS
 - Фьютекс
 - Шаблон безопасности
 
 - Информация о стороннем коде
 - Уведомления о товарных знаках
 
Сборка решения на базе KasperskyOS > Библиотеки CMake в составе KasperskyOS Community Edition > Библиотека nk > Генерация транспортного кода для разработки на языке C++ > add_nk_edl()
	add_nk_edl()
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<version>/toolchain/share/cmake/Modules/platform/nk2.cmake.
add_nk_edl(NAME EDL_FILE ...)
Команда создает CMake-цель для генерации файла *.edl.cpp.h для заданного EDL-файла при помощи компилятора nkppmeta. Также команда создает библиотеку, содержащую транспортный код для серверной или клиентской программы. Для компоновки с этой библиотекой необходимо использовать команду bind_nk_targets().
Файл *.edl.cpp.h содержит дерево вложенных компонентов и служб, предоставляемых классом процессов, описанным в EDL-файле.
Параметры:
NAME– имяCMake-цели. Обязательный параметр.EDL_FILE– путь к EDL-файлу. Обязательный параметр.NK_MODULE– в этом параметре необходимо указать имя класса процессов, исключив из него имя EDL-файла. Например, если в EDL-описании имя класса процессов задано какkl.core.NameServer, то в параметреNK_MODULEнеобходимо передать значениеkl.core.LANG– в этом параметре необходимо указать значениеCXX.
Пример вызова:
add_nk_edl (SERVER_EDL "${CMAKE_SOURCE_DIR}/resources/Server.edl"
            NK_MODULE  "example"
            LANG       "CXX")
                            Идентификатор статьи: add_nk_edl,                                        Последнее изменение: 27 янв. 2025 г.