Пример mass_storage
Пример демонстрирует использование драйвера UsbMassStorage в решениях на базе KasperskyOS для работы с внешними USB-накопителем, подключенным к USB-порту Raspberry Pi 4 B.
Директория примера в SDK
Код примера и скрипты для сборки находятся по следующему пути:
Список программ
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-накопитель для использования в этом примере, необходимо вызвать следующие команды:
См. "Сборка и запуск примеров".