Разделение информационных потоков с помощью VFS-бэкендов
В этом примере применяется паттерн безопасной разработки, предусматривающий отделение информационных потоков, связанных с использованием файловых систем, от информационных потоков, связанных с использованием сетевого стека.
Процесс Client
использует файловые системы и сетевой стек. Процесс VfsFirst
обеспечивает работу с файловыми системами, а процесс VfsSecond
дает возможность работать с сетевым стеком. Через переменные окружения программ, исполняющихся в контекстах процессов Client
, VfsFirst
и VfsSecond
, заданы VFS-бэкенды, которые обеспечивают раздельное использование файловых систем и сетевого стека. В результате этого IPC-запросы процесса Client
, связанные с использованием файловых систем, обрабатываются процессом VfsFirst
, а IPC-запросы процесса Client
, связанные с использованием сетевого стека, обрабатываются процессом VfsSecond
(см. рис. ниже).
Схема взаимодействия процессов
Init-описание примера:
init.yaml