Для сущностей, компонентов и интерфейсов допустимо использовать составные имена, содержащие одну или несколько точек. При этом часть имени, следующая за последней точкой, называется кратким именем.
Например, если полное имя сущности – kl.VfsEntity
, то краткое имя – VfsEntity
. Интерфейс c полным именем main.security.Verify
имеет краткое имя Verify
.
Если имя несоставное (например, server
), то оно является и кратким, и полным именем одновременно.
Имена и расположение файлов описаний
Имя EDL-файла должно совпадать с кратким именем сущности, которую он описывает. При этом составное имя используется для формирования пути к EDL-файлу. Например, сущность kl.VfsEntity
должна быть описана в файле kl/VfsEntity.edl
.
То же правило действует для компонентов и интерфейсов: имя CDL-файла должно совпадать с кратким именем компонента, а имя IDL-файла должно совпадать с кратким именем интерфейса. При этом составное имя используется для формирования пути к CDL- или IDL-файлу соответственно. Например, компонент net.Updater
должен описываться в файле net/Updater.cdl
, интерфейс c полным именем main.security.Verify
должен описываться в файле main/security/Verify.idl
.
Краткие имена сущностей, компонентов и интерфейсов не могут содержать символ подчеркивания (_). В сегментах составного имени символ подчеркивания разрешен.
Имена исполняемых файлов для запуска сущностей
При старте решения сущность Einit запускает другие сущности следующим образом: в ROMFS (в образе решения) выбирается для запуска исполняемый файл с именем, которое совпадает с кратким именем запускаемой сущности. Например, сущности Client
и net.Client
по умолчанию будут запущены из исполняемого файла с именем Client
. Чтобы при старте решения сущность запускалась из исполняемого файла с другим именем, необходимо в init-описании использовать ключевое слово path
.
Полные имена в описаниях
В EDL-, CDL- и IDL-описаниях, а также в init-описании и в конфигурации безопасности используются только полные имена сущностей, компонентов и интерфейсов. Для примера возьмем уже упоминавшиеся выше сущность kl.VfsEntity
, компонент net.Updater
и интерфейс main.security.Verify
.
Пример EDL-описания сущности kl.VfsEntity
:
VfsEntity.edl
entity kl.VfsEntity
...
Пример CDL-описания компонента net.Updater
:
Updater.cdl
component net.Updater
...
Пример Init-описания:
init.yaml
entities:
- name: kl.VfsEntity
...
Пример конфигурации безопасности:
security.psl
...
/* Объявление сущности "kl.VfsEntity". */
use EDL kl.VfsEntity;
...
/* Конфигурирование запросов для вызова метода Check любых реализаций интерфейса "Verify". */
request interface=main.security.Verify, method=Check { grant () }
...
Имена NK-сгенерированных методов и типов
Имена сгенерированных типов и методов построены на основе полных имен сущностей, компонентов и интерфейсов. Например, для компонента net.Updater
будет сгенерирована структура net_Updater_component
, функция net_Updater_component_init
, диспетчер net_Updater_component_dispatch
, а также структуры запроса net_Updater_component_req
и ответа net_Updater_component_res
.