Компонент VFS реализует виртуальную файловую систему. В составе KasperskyOS SDK компонент VFS представлен набором исполняемых файлов, библиотек, файлов формальной спецификации и заголовочных файлов, позволяющих использовать файловые системы и/или сетевой стек.
Библиотеки VFS
CMake-пакет vfs содержит следующие библиотеки:
vfs::lib_fs – содержит реализации файловых систем devfs, ramfs и ROMFS, а также позволяет добавить в VFS реализации других файловых систем.vfs::lib_net – содержит реализацию файловой системы devfs и сетевого стека.vfs::client– клиентская транспортная библиотека, которая преобразует локальные вызовы в IPC-запросы к VFS и принимает IPC-ответы.vfs::server – серверная транспортная библиотека VFS, которая принимает IPC-запросы, преобразует их в локальные вызовы и отправляет IPC-ответы.vfs::local – используется для включения функциональности VFS в программу.vfs::relay– используется для реализации механизма Relay VFS.Исполняемые файлы VFS
CMake-пакет precompiled_vfs содержит следующие исполняемые файлы:
VfsRamFs;VfsSdCardFs;VfsNet.Исполняемые файлы VfsRamFs и VfsSdCardFs включают в себя библиотеки vfs::server, vfs::lib_fs, fs::vfat и fs::lwext4. Исполняемый файл VfsNet включает в себя библиотеки vfs::server и vfs::lib_net.
Каждый из этих исполняемых файлов имеет собственные значения параметров запуска и переменных окружения по умолчанию.
При необходимости можно самостоятельно собрать исполняемый файл VFS с нужной функциональностью.
Файлы формальной спецификации и заголовочные файлы VFS
В директории sysroot-*-kos/include/kl из состава KasperskyOS SDK находятся следующие файлы VFS:
VfsRamFs.edl, VfsSdCardFs.edl, VfsNet.edl и VfsEntity.edl и сгенерированные из них заголовочные файлы;Vfs.cdl и сгенерированный из него заголовочный файл Vfs.cdl.h;Vfs*.idl и сгенерированные из них заголовочные файлы.API библиотеки libc, поддерживаемый VFS
Функциональность VFS доступна программам через API, предоставляемый библиотекой libc.
Функции, реализуемые библиотеками vfs::lib_fs и vfs::lib_net, приведены в таблицах ниже. Символом * отмечены функции, которые включаются в библиотеку vfs::lib_fs опционально (в зависимости от параметров сборки библиотеки).
Функции, реализуемые библиотекой vfs::lib_fs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Функции, реализуемые библиотекой vfs::lib_net
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Если в VFS нет реализации вызванной функции, возвращается код ошибки EIO.