Ниже приведен пример скрипта для сборки простейшего примера. Этот пример содержит единственную прикладную программу Hello
, которая не предоставляет службы.
Приведенный скрипт предназначен только для демонстрации используемых команд сборки.
build.sh
#!/bin/sh
# В переменной SDK нужно указать путь к директории установки KasperskyOS Community Edition.
SDK=/opt/KasperskyOS-Community-Edition-<version>
TOOLCHAIN=$SDK/toolchain
SYSROOT=$SDK/sysroot-aarch64-kos
PATH=$TOOLCHAIN/bin:$PATH
# Создание файла Hello.edl.h из Hello.edl
# (Программа Hello не реализует служб, поэтому cdl- и idl-файлы отсутствуют.)
nk-gen-c -I $SYSROOT/include Hello.edl
# Компиляция и сборка программы Hello
aarch64-kos-gcc -o hello hello.c
# Создание модуля безопасности Kaspersky Security Module (ksm.module)
makekss --target=aarch64-kos \
--module=-lksm_kss \
--with-nkflags="-I $SDK/examples/common -I $SYSROOT/include" \
security.psl
# Создание кода инициализирующей программы Einit
einit -I $SYSROOT/include -I . init.yaml -o einit.c
# Компиляция и сборка программы Einit
aarch64-kos-gcc -I . -o einit einit.c
# Создание загружаемого образа решения (kos-qemu-image)
makeimg --target=aarch64-kos \
--sys-root=$SYSROOT \
--with-toolchain=$TOOLCHAIN \
--ldscript=$SDK/libexec/aarch64-kos/kos-qemu.ld \
--img-src=$SDK/libexec/aarch64-kos/kos-qemu \
--img-dst=kos-qemu-image \
Hello ksm.module
# Запуск решения под QEMU
qemu-system-aarch64 -m 1024 -serial stdio -kernel kos-qemu-image
В начало