Пример Separate Storage демонстрирует использование паттерна Distrustful Decomposition для решения задачи раздельного хранения данных для доверенных и недоверенных приложений.
Архитектура примера
Пример Separate Storage содержит две пользовательские сущности: UserManager и CertificateManager.
Эти сущности работают с данными, которые размещаются в соответствующих файлах:
UserManager работает с данными из файла userlist.txt;CertificateManager работает с данными из файла certificate.cer.Каждая из этих сущностей использует собственный экземпляр сущности VFS для доступа к отдельной файловой системе. При этом каждая сущность VFS включает в себя драйвер блочного устройства, связанный с отдельным логическим разделом диска. Сущность UserManager не имеет доступа к файловой системе сущности CertificateManager и наоборот.

Такая архитектура гарантирует, что в случае атаки или ошибки в любой из сущностей UserManager и CertificateManager, эта сущность не сможет получить доступ к файлу, который  не предназначен для выполнения ее работы.
Политика безопасности в примере Separate Storage имеет следующие особенности:
UserManager имеет доступ к файловой системе только через сущность VfsUser.CertificateManager имеет доступ к файловой системе через только через сущность VfsCertificate.Файлы примера
Код примера и скрипты для сборки находятся по следующему пути:
/opt/KasperskyOS-Community-Edition-<version>/examples/separate_storage
Сборка и запуск примера
Чтобы запустить пример на QEMU, перейдите в директорию с примером, соберите пример и выполните следующие команды:
$ cd build/einit
# Перед выполнением следующей команды убедитесь, что путь к
# директории с исполняемым файлом qemu-system-arm сохранен в
# переменной окружения PATH. В случае отсутствия
# добавьте его в переменную PATH.
$ qemu-system-arm -m 2048 -machine vexpress-a15 -nographic -monitor none -sd hdd.img -kernel kos-qemu-image
Также см. "Сборка и запуск примеров".
Подготовка SD-карты для запуска на Raspberry Pi 4 B
Для запуска примера Separate Storage на Raspberry Pi 4 B необходимы следующие дополнительные действия:
ext2 или ext3.userlist.txt из директории ./resources/files/certificate.cer из директории ./resources/files/Для запуска примера Separate Storage на Raspberry Pi 4 B можно использовать SD-карту, подготовленную для запуска примера embed_ext2_with_separate_vfs на Raspberry Pi 4 B, скопировав файлы userlist.txt и certificate.cer на соответствующие разделы.