Пример демонстрирует использование драйвера 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
См. "Сборка и запуск примеров".
В начало