KasperskyOS Community Edition 1.2

Содержание

Пример hello

Код hello.c выглядит привычным и простым для разработчика на языке C – он полностью совместим с POSIX:

hello.c

#include <stdio.h> #include <stdlib.h> int main(int argc, const char *argv[]) { fprintf(stderr,"Hello world!\n"); return EXIT_SUCCESS; }

Скомпилируйте этот код с использованием aarch64-kos-gcc (входит в состав средств разработки KasperskyOS Community Edition):

aarch64-kos-gcc -o Hello hello.c

Имя программы (а значит и имя исполняемого файла) должно начинаться с заглавной буквы.

EDL-описание класса процессов Hello

Статическое описание программы Hello состоит из единственного файла Hello.edl, в котором необходимо прописать имя класса процессов:

Hello.edl

/* После ключевого слова "entity" указано имя класса процессов. */ entity Hello

Имя класса процессов должно начинаться с заглавной буквы. Имя EDL-файла должно совпадать с именем класса, который он описывает.

Создание инициализирующей программы Einit

При загрузке KasperskyOS ядро запускает программу с именем Einit. Программа Einit запускает все остальные программы, входящие в решение, то есть служит инициализирующей программой.

В составе пакета инструментов KasperskyOS Community Edition поставляется утилита einit, которая позволяет сгенерировать код инициализирующей программы (einit.c) на основе init-описания. В приведенном ниже примере файл с init-описанием называется init.yaml, хотя может иметь любое имя.

Подробнее см. "Запуск процессов".

Для того чтобы программа Hello запустилась после загрузки операционной системы, достаточно указать ее имя в файле init.yaml и собрать на его основе программу Einit.

init.yaml

entities: # Запустить программу "Hello". - name: Hello

Сборка модуля безопасности

Пример hello содержит простейшую политику безопасности решения (security.psl), разрешающую любые взаимодействия.

Модуль безопасности (ksm.module) собирается на основе security.psl.

Файлы примера

Код примера и скрипты для сборки находятся по следующему пути:

/opt/KasperskyOS-Community-Edition-<version>/examples/hello

Сборка и запуск примера

См. "Сборка и запуск примеров".

Общая схема сборки примера hello выглядит следующим образом:

В начало
[Topic appendix_hello_example]