KasperskyOS Community Edition 1.2
- Что нового
- О KasperskyOS Community Edition
- Обзор KasperskyOS
- Начало работы
- Разработка под KasperskyOS
- Запуск процессов
- Файловые системы и сеть
- IPC и транспорт
- Создание IPC-каналов
- Добавление в решение службы из состава KasperskyOS Community Edition
- Создание и использование собственных служб
- KasperskyOS API
- Коды возврата
- Библиотека libkos
- Управление дескрипторами (handle_api.h)
- Выделение и освобождение памяти (alloc.h)
- Использование DMA (dma.h)
- Управление обработкой прерываний (irq.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)
- Поддержка POSIX
- Получение статистических сведений о системе
- Компонент MessageBus
- Компонент ExecutionManager
- Сборка решения на базе 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
- Служба виртуальной памяти
- Служба ввода-вывода
- Служба потоков исполнения
- Служба дескрипторов
- Служба процессов
- Служба синхронизации
- Службы файловой системы
- Служба времени
- Служба слоя аппаратных абстракций
- Служба управления контроллером XHCI
- Служба аудита
- Служба профилирования
- Служба управления изоляцией памяти для ввода-вывода
- Служба соединений
- Служба управления электропитанием
- Служба уведомлений
- Служба гипервизора
- Службы доверенной среды исполнения
- Служба прерывания IPC
- Служба управления частотой процессоров
- Использование системных программ Klog и KlogStorage для выполнения аудита безопасности
- Паттерны безопасности при разработке под KasperskyOS
- Приложения
- Дополнительные примеры
- Пример 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
- Пример iperf_separate_vfs
- Пример uart
- Пример spi_check_regs
- Пример barcode_scanner
- Пример perfcnt
- Пример watchdog_system_reset
- Пример shared_libs
- Сведения о некоторых лимитах, установленных в системе
- Дополнительные примеры
- Лицензирование
- Предоставление данных
- Глоссарий
- Callable-дескриптор
- CDL
- DMA
- EDL
- Execute-интерфейс
- IDL
- Init-описание
- IPC
- IPC-дескриптор
- IPC-запрос
- IPC-канал
- IPC-ответ
- IPC-сообщение
- IPC-транспорт
- KasperskyOS
- KSM
- KSS
- MID
- OCap
- OPP
- PAL
- PSL
- RIID
- SID
- Аппаратное прерывание
- Арена IPC-сообщения
- Аудит безопасности
- Барьер памяти
- Блокировка чтения-записи
- Буфер DMA
- Выражение модели безопасности
- Данные аудита безопасности
- Дерево наследования дескрипторов
- Дескриптор
- Дескриптор арены
- Дескриптор участка арены
- Идентификатор безопасности
- Идентификатор метода службы
- Идентификатор службы
- Инициализирующая программа
- Интерфейс безопасности
- Интерфейс службы
- Интерфейсный метод
- Клиент
- Клиентская библиотека компонента решения
- Клиентский процесс
- Компонент решения на базе KasperskyOS
- Контекст безопасности
- Контекст передачи ресурса
- Контекст пользовательского ресурса
- Конфигурация аудита безопасности
- Критическая секция
- Мандатная ссылка
- Маска прав дескриптора
- Маска событий
- Межпроцессное взаимодействие
- Метод модели безопасности
- Метод службы
- Модель безопасности KasperskyOS
- Мьютекс
- Начальное значение генератора случайных чисел
- Объект контекста передачи ресурса
- Объект модели безопасности
- Описание политики безопасности решения на базе KasperskyOS
- Паттерн безопасности
- Политика безопасности решения на базе KasperskyOS
- Пользовательский ресурс
- Поставщик ресурсов
- Поток исполнения
- Потребитель ресурсов
- Правило модели безопасности
- Прерывание MSI
- Приемник уведомлений
- Прикладная программа
- Программа
- Профиль аудита безопасности
- Процесс
- Прямой доступ к памяти
- Разыменование дескриптора
- Рекурсивный мьютекс
- Ресурс
- Решение модуля безопасности
- Решение на базе KasperskyOS
- Семафор
- Сервер
- Серверная библиотека компонента решения
- Серверный процесс
- Система паттернов безопасности
- Системная программа
- Системный ресурс
- Служба
- Слушающий дескриптор
- Событие
- Событие безопасности
- Точка рабочих характеристик
- Транспортная библиотека
- Транспортный код
- Транспортный контейнер дескриптора
- Уровень аудита безопасности
- Уровень целостности ресурса
- Уровень целостности субъекта
- Условная переменная
- Фиксированная часть IPC-сообщения
- Формальная спецификация компонента решения на базе KasperskyOS
- Шаблон безопасности
- Информация о стороннем коде
- Уведомления о товарных знаках
Модель безопасности Math
Модель безопасности Math позволяет выполнять операции целочисленной арифметики.
PSL-файл с описанием модели безопасности Math находится в KasperskyOS SDK по пути:
toolchain/include/nk/basic.psl
Объект модели безопасности Math
В файле basic.psl
содержится декларация, которая создает объект модели безопасности Math с именем math
. Соответственно, включение файла basic.psl
в описание политики безопасности решения обеспечивает создание объекта модели безопасности Math по умолчанию.
Объект модели безопасности Math не имеет параметров и не может быть покрыт аудитом безопасности.
Создавать дополнительные объекты модели безопасности Math не требуется.
Методы модели безопасности Math
Модель безопасности Math содержит выражения, которые выполняют операции целочисленной арифметики. Для вызова части этих выражений нужно использовать следующие арифметические операторы:
- <
Number
>+
<Number
> – "сложение". Возвращает значения типаNumber
. - <
Number
>-
<Number
> – "вычитание". Возвращает значения типаNumber
. - <
Number
>*
<Number
> – "умножение". Возвращает значения типаNumber
.
Другая часть включает следующие выражения:
neg (
<Signed
>)
– "изменение знака числа". Возвращает значения типаSigned
.abs (
<Signed
>)
– "получение модуля числа". Возвращает значения типаSigned
.sum (
<List<Number>
>)
– "сложение чисел из списка". Возвращает значения типаNumber
. Если передать через параметр пустой список значений ([]
), возвращает0
.product (
<List<Number>
>)
– "перемножение чисел из списка". Возвращает значения типаNumber
. Если передать через параметр пустой список значений ([]
), возвращает1
.
Для вызова этих выражений нужно использовать следующую конструкцию: