Одна из стандартных проблем у осваивающих KasperskyOS — разобраться с классами процессов, их экземплярами и исполнимыми файлами. Расскажем об этом подробнее.
Основой «каши» в голове обучающихся, с моей точки зрения, стало упрощение нотации, введенное в файл init.yaml.in и связанное с определением экземпляра процесса. Этот вопрос рассматривается в уроке 3-8 курса по KasperskyOS на Stepik, однако достаточно кратко. Соответствующая документация имеется здесь. Разберем еще раз.
Каждый раздел в файле init.yaml.in, начинающийся с дефиса, определяет отдельный запускаемый процесс. Единственным обязательным параметром является name, который определяет ссылку на класс, с которого при запуске будет создан отдельный экземпляр (процесс).
Именно на имя класса будет ссылаться политика безопасности, описываемая в файлах PSL. С учетом того, что из класса может быть запущено более одного экземпляра — одинаковая политика в этом случае будет применена к каждому из них.
Класс процесса с точки зрения структуры исходных файлов может быть достаточно сложным, состоять более чем из одного файла и/или процедуры, включать в себя линкуемые библиотеки (см. пример из курса обучения в отношении клиентской библиотеки VFS).
Вторым (необязательным) параметром является task, который определяет имя этого самого экземпляра. Если параметр не указан, то тогда будет использовано имя класса, взятое полностью. Очевидно, что в рамках одного проекта имя экземпляра должно быть уникальным. Соответственно, опускать данный параметр можно до тех пор, пока вам не надо запускать более одного экземпляра класса.
При инициализации соединения (connection) целью (target) будет являться именно task, т.к. соединение клиент должен установить со вполне конкретным сервером.
При необходимости — из одного класса можно запустить не совсем идентичные (в работе) процессы. Это может быть сделано при помощи одного из двух механизмов — прямой передачи аргументов или установки переменных окружения. Подробнее с первым механизмом можно ознакомиться здесь, примеры приведены здесь. Или можно посмотреть net_with_separate_vfs из состава SDK.
Следует отметить, что с точки зрения архитектуры KasperskyOS — границы домена безопасности совпадают с экземпляром процесса. Это означает, что система контролирует только внешние коммуникации процесса, но не внутренние. Этот факт необходимо использовать для снижения нагрузки на систему безопасности, т.к. ресурсы для ее работы представляют собой основной overhead по сравнению с классическими системами.
Третьим параметром является path, который определяет имя исполнимого файла. Если его не указать, то будет взято имя класса процесса без префиксов и точек. Можно запустить несколько процессов из одного исполняемого файла.
Одна из стандартных проблем у осваивающих KasperskyOS — разобраться с классами процессов, их экземплярами и исполнимыми файлами. Расскажем об этом подробнее.
Основой «каши» в голове обучающихся, с моей точки зрения, стало упрощение нотации, введенное в файл init.yaml.in и связанное с определением экземпляра процесса. Этот вопрос рассматривается в уроке 3-8 курса по KasperskyOS на Stepik, однако достаточно кратко. Соответствующая документация имеется здесь. Разберем еще раз.
Каждый раздел в файле init.yaml.in, начинающийся с дефиса, определяет отдельный запускаемый процесс. Единственным обязательным параметром является name, который определяет ссылку на класс, с которого при запуске будет создан отдельный экземпляр (процесс).
Именно на имя класса будет ссылаться политика безопасности, описываемая в файлах PSL. С учетом того, что из класса может быть запущено более одного экземпляра — одинаковая политика в этом случае будет применена к каждому из них.
Класс процесса с точки зрения структуры исходных файлов может быть достаточно сложным, состоять более чем из одного файла и/или процедуры, включать в себя линкуемые библиотеки (см. пример из курса обучения в отношении клиентской библиотеки VFS).
Вторым (необязательным) параметром является task, который определяет имя этого самого экземпляра. Если параметр не указан, то тогда будет использовано имя класса, взятое полностью. Очевидно, что в рамках одного проекта имя экземпляра должно быть уникальным. Соответственно, опускать данный параметр можно до тех пор, пока вам не надо запускать более одного экземпляра класса.
При инициализации соединения (connection) целью (target) будет являться именно task, т.к. соединение клиент должен установить со вполне конкретным сервером.
При необходимости — из одного класса можно запустить не совсем идентичные (в работе) процессы. Это может быть сделано при помощи одного из двух механизмов — прямой передачи аргументов или установки переменных окружения. Подробнее с первым механизмом можно ознакомиться здесь, примеры приведены здесь. Или можно посмотреть net_with_separate_vfs из состава SDK.
Следует отметить, что с точки зрения архитектуры KasperskyOS — границы домена безопасности совпадают с экземпляром процесса. Это означает, что система контролирует только внешние коммуникации процесса, но не внутренние. Этот факт необходимо использовать для снижения нагрузки на систему безопасности, т.к. ресурсы для ее работы представляют собой основной overhead по сравнению с классическими системами.
Третьим параметром является path, который определяет имя исполнимого файла. Если его не указать, то будет взято имя класса процесса без префиксов и точек. Можно запустить несколько процессов из одного исполняемого файла.