KasperskyOS Community Edition 1.3

Включение EDL-файлов в описание политики безопасности решения на базе KasperskyOS

Чтобы включить в описание политики EDL-файл для ядра KasperskyOS, нужно использовать любую из следующих деклараций:

use EDL kl.core.Core task class kl.core.Core : kl.core.Core

Чтобы включить в описание политики EDL-файл для программы (например, для драйвера или прикладной программы), нужно использовать одну из следующих деклараций:

use EDL <имя класса процессов> task class <имя класса процессов> : <ссылка на EDL-файл>

Имя класса процессов в декларации use EDL и ссылка на EDL-файл в декларации task class представляет собой путь к EDL-файлу (без расширения и точки перед ним) относительно директории, которая включена в набор директорий, где компилятор nk-psl-gen-c ищет PSL-IDL-, CDL-, EDL-файлы. (Этот набор директорий задается параметрами -I <путь к директории> при запуске скрипта makekss или компилятора nk-psl-gen-c.) В качестве разделителя в описании пути используется точка.

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

Пример:

/* Включение файла UART.edl, который находится в * KasperskyOS SDK по пути sysroot-*-kos/include/kl/drivers. */ use EDL kl.drivers.UART /* Включение файла VfsNet.edl, который находится в * KasperskyOS SDK по пути sysroot-*-kos/include/kl. * Файл включается четыре раза с разными именами классов процессов. */ task class VfsNet : kl.VfsNet task class kl.VfsNet : kl.VfsNet task class kl.VfsNet1 : kl.VfsNet task class kl.VfsNet2 : kl.VfsNet /* Компилятор nk-psl-gen-c должен быть настроен на поиск * PSL-, IDL-, CDL-, EDL-файлов в директории sysroot-*-kos/include. */

В декларации task class можно не указывать ссылку на EDL-файл:

task class <имя класса процессов>

Эта декларация имитирует включение EDL-файла, который содержит только имя класса процессов. То есть, используя эту декларацию, не нужно создавать EDL-файлы, содержащие только декларацию task class или entity.

Пример:

/* Имитация включения EDL-файла, который содержит только * декларацию task class start.Empty. */ task class start.Empty /* Имитация включения EDL-файла, который содержит только * декларацию task class MyClient. */ task class MyClient

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

Компилятор nk-psl-gen-c находит IDL-, CDL-файлы через EDL-файлы, так как EDL-файлы содержат имена компонентов и интерфейсов, CDL-файлы также содержат имена компонентов и интерфейсов для поиска IDL- и CDL-файлов.