Содержание
Пример hello
Код hello.c
выглядит привычным и простым для разработчика на языке C – он полностью совместим с POSIX:
hello.c
Скомпилируйте этот код с использованием aarch64-kos-gcc
(входит в состав средств разработки KasperskyOS Community Edition):
Имя программы (а значит и имя исполняемого файла) должно начинаться с заглавной буквы.
EDL-описание класса процессов Hello
Статическое описание программы Hello
состоит из единственного файла Hello.edl
, в котором необходимо прописать имя класса процессов:
Hello.edl
Имя класса процессов должно начинаться с заглавной буквы. Имя EDL-файла должно совпадать с именем класса, который он описывает.
Создание инициализирующей программы Einit
При загрузке KasperskyOS ядро запускает программу с именем Einit
. Программа Einit
запускает все остальные программы, входящие в решение, то есть служит инициализирующей программой.
В составе пакета инструментов KasperskyOS Community Edition поставляется утилита einit, которая позволяет сгенерировать код инициализирующей программы (einit.c
) на основе init-описания. В приведенном ниже примере файл с init-описанием называется init.yaml
, хотя может иметь любое имя.
Подробнее см. "Запуск процессов".
Для того чтобы программа Hello
запустилась после загрузки операционной системы, достаточно указать ее имя в файле init.yaml
и собрать на его основе программу Einit
.
init.yaml
Сборка модуля безопасности
Пример hello содержит простейшую политику безопасности решения (security.psl
), разрешающую любые взаимодействия.
Модуль безопасности (ksm.module
) собирается на основе security.psl
.
Файлы примера
Код примера и скрипты для сборки находятся по следующему пути:
Сборка и запуск примера
См. "Сборка и запуск примеров".
Общая схема сборки примера hello выглядит следующим образом: