Сборка сущности 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, скомпонованной с сетевым драйвером
Чтобы использовать сетевой драйвер по 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 и сетевого драйвера в виде отдельной сущности
Некоторые сетевые функции, а также вывод в 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 и драйвера в виде отдельной сущности
При необходимости можно собрать сущность VFS, содержащую как сетевой стек, так и файловые системы. Для этого необходимо использовать библиотеки vfs_server
, vfs_implementation
, dnet_implementation
(или dnet_client
), а также библиотеки реализации файловых систем.