Пример hello

02 августа 2023

ID appendix_hello_example

Код 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 выглядит следующим образом:

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!