KasperskyOS Community Edition 1.3

Пример mass_storage

Пример демонстрирует использование драйвера UsbMassStorage в решениях на базе KasperskyOS для работы с внешними USB-накопителем, подключенным к USB-порту Raspberry Pi 4 B.

Директория примера в SDK

Код примера и скрипты для сборки находятся по следующему пути:

/opt/KasperskyOS-Community-Edition-<version>/examples/mass_storage

Список программ

  • Client – прикладная программа, которая монтирует файловые системы в указанные директории на внешнем USB-накопителе, и выполняет базовые операции с файлами (создание, запись, чтение и удаление).
  • FileVfs – прикладная программа, реализующая серверную часть виртуальной файловой системы, предоставляя интерфейс для взаимодействия с файловыми системами и блочными устройствами.
  • UsbMassStorage – драйвер для доступа к данным на внешних USB-накопителях (USB-флеш-накопители, внешние жесткие диски).
  • EntropyEntity – системная программа, реализующая генератор случайных чисел.
  • USB – драйвер для управления всеми типами USB-устройств.
  • PCIE – драйвер шины PCIe.
  • Bcm2711MboxArmToVc – драйвер для работы с сопроцессором VideoCore (VC6) через технологию mailbox для Raspberry Pi 4 B.

Описание инициализации

Файл описания инициализации решения init.yaml генерируется в процессе сборки решения на основе шаблона:

./einit/src/init.yaml.in

Макрос @INIT_Client_ENTITY_CONNECTIONS+@ в шаблоне init.yaml.in при сборке примера заменяется в файле init.yaml на список IPC-каналов со всеми системными программами, с которыми скомпонована программа Client. Этот список дополняет вручную заданные IPC-каналы в шаблоне init.yaml.in.

Макрос @INIT_FileVfs_ENTITY_CONNECTIONS@ при сборке примера заменяется в файле init.yaml на список IPC-каналов со всеми системными программами, с которыми скомпонована программа FileVfs.

Макрос @INIT_EXTERNAL_ENTITIES@ в шаблоне init.yaml.in при сборке заменяется в файле init.yaml на список системных программ, с которыми скомпонованы прикладные программы. Этот список содержит IPC-каналы системных программ, параметры запуска функции main() и значения переменных окружения.

Подробнее см. "Шаблон init.yaml.in".

Описание политики безопасности

Файл security.psl содержит описание политики безопасности решения и генерируется в процессе сборки решения на основе шаблона:

./einit/src/security.psl.in

Макрос @INIT_EXTERNAL_ENTITIES@ в шаблоне security.psl.in при сборке решения заменяется на список системных программ, поставляемых в составе KasperskyOS SDK. Подробнее см. "Шаблон security.psl.in".

Ресурсы

В директории ./resources/edl содержатся EDL-описания для программ Client и FileVfs.

Сценарий работы

Программа Client отправляет запросы через IPC программе FileVfs, чтобы смонтировать файловые системы (ext2, ext3, ext4) в указанные директории, и выполнить базовые операции с файлами (создание, запись, чтение и удаление) для проверки корректности монтирования файловых систем на внешнем USB-накопителе. Результаты выполнения операций отображаются в стандартном выводе.

Сборка и запуск примера

Чтобы подготовить USB-накопитель для использования в этом примере, необходимо вызвать следующие команды:

# В следующих командах /dev/sde – имя блочного устройства подключенного USB-накопителя parted /dev/sde mklabel msdos parted /dev/sde mkpart primary ext4 0% 100% mkfs.ext4 -L flash /dev/sde1

См. "Сборка и запуск примеров".