KasperskyOS Community Edition 1.0

Сборка сущности VFS

В составе KasperskyOS Community Edition не поставляется готовый образ сущности, содержащей компонент VFS. Разработчик решения может самостоятельно собрать одну или несколько сущностей, включив в каждую из них именно ту функциональность VFS, которая необходима в решении.

См. также примеры multi_vfs_dhcpcd, multi_vfs_dns_client и multi_vfs_ntpd в составе KasperskyOS Community Edition.

Сборка сетевой VFS

Для сборки "сетевой" сущности VFS, содержащей сетевой драйвер, необходимо файл с функцией main() скомпоновать с библиотеками vfs_server, vfs_net и dnet_implementation:

CMakeLists.txt (фрагмент)

target_link_libraries (Net1Vfs ${vfs_SERVER_LIB}

${vfs_NET_LIB}

${dnet_IMPLEMENTATION_LIB})

set_target_properties (Net1Vfs PROPERTIES ${blkdev_ENTITY}_REPLACEMENT "")

vfs_net1

Использование "сетевой" сущности VFS, скомпонованной с сетевым драйвером

Чтобы использовать сетевой драйвер по IPC (как отдельную сущность), необходимо вместо dnet_implementation использовать библиотеку dnet_client:

CMakeLists.txt (фрагмент)

target_link_libraries (Net2Vfs ${vfs_SERVER_LIB}

${vfs_NET_LIB}

${dnet_CLIENT_LIB})

set_target_properties (Net2Vfs PROPERTIES ${blkdev_ENTITY}_REPLACEMENT "")

vfs_net2

Использование "сетевой" сущности VFS и сетевого драйвера в виде отдельной сущности

Некоторые сетевые функции, а также вывод в stdout используют файловые операции. Для корректной работы этих функций требуется при сборке добавить библиотеку vfs_implementation вместо vfs_net.

Сборка файловой VFS

Для сборки "файловой" сущности VFS необходимо файл с функцией main() скомпоновать с библиотеками vfs_server и vfs_fs, а также библиотеками реализации файловых систем:

CMakeLists.txt (фрагмент)

target_link_libraries (VfsFs

${vfs_SERVER_LIB}

${LWEXT4_LIB}

${vfs_FS_LIB})

set_target_properties (VfsFs PROPERTIES ${blkdev_ENTITY}_REPLACEMENT ${ramdisk_ENTITY})

В этом примере сущность VFS подготовлена для соединения с сущностью ramdisk-драйвера.

Драйвер блочного устройства не может быть скомпонован с VFS и всегда используется через IPC:

vfs_fs

Использование "файловой" сущности VFS и драйвера в виде отдельной сущности

При необходимости можно собрать сущность VFS, содержащую как сетевой стек, так и файловые системы. Для этого необходимо использовать библиотеки vfs_server, vfs_implementation, dnet_implementation (или dnet_client), а также библиотеки реализации файловых систем.