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
Использование отладчика GDB
Чтобы выполнить отладку программ в решении на базе KasperskyOS, нужно использовать отладчик GDB из состава KasperskyOS Community Edition на компьютере под управлением ОС Ubuntu. Отладку можно выполнить как на QEMU из состава KasperskyOS Community Edition, так и на аппаратной платформе. Для отладки на QEMU нужно использовать GDB-сервер QEMU или GDB-сервер ядра KasperskyOS. Для отладки на аппаратной платформе требуется использовать GDB-сервер ядра KasperskyOS.
Работоспособность отладчика GDB и QEMU не из состава KasperskyOS Community Edition не гарантируется.
Отладчик GDB по умолчанию поддерживает OS ABI (англ. Operating System ABI), специфичный для KasperskyOS. При изменении профиля OS ABI, заданного по умолчанию, возможность полноценной отладки не гарантируется.
Можно выполнять отладку одновременно нескольких программ решения, загрузив отладочные символы для нескольких исполняемых файлов.
Отладочные символы исполняемых файлов могут сохраняться в самих исполняемых файлах либо в отдельных файлах. Во втором случае можно существенно уменьшить размер образа решения. Чтобы сохранить отладочные символы в файлах *.dbg
, нужно использовать следующую CMake
-команду:
Обратная трассировка стека при аварийном завершении процесса
Если процесс завершается аварийно, то ядро KasperskyOS выводит данные обратной трассировки стека (сведения о стеке вызовов) для потока исполнения, в котором возникло необработанное исключение. Эти данные позволяют определить последовательность вызовов функций, которая привела к аварийному завершению процесса.
В некоторых случаях при аварийном завершении процесса ядро KasperskyOS не может подготовить сведения о стеке вызовов. Причиной этому могут быть, например, параметры оптимизации, которые применялись при сборке программы, исполнявшейся в контексте аварийно завершенного процесса.
Поддержка санитайзеров
В KasperskyOS Community Edition поддерживаются санитайзеры ASAN и UBSAN.