Состав компонента VFS
Компонент 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.