Пример multi_vfs_dhcpcd
Пример использования сущности kl.Dhcpcd
.
Сущность Dhcpcd
представляет собой реализацию DHCP-клиента, который в фоновом режиме получает параметры сетевых интерфейсов от внешнего DHCP-сервера и передает их сущности виртуальной файловой системы (далее VFS).
Пример также демонстрирует использование разных VFS в одном решении. В примере для доступа к функциям работы с файловой системой и функциям работы с сетью используются разные VFS:
- Для работы с сетью используется сущность
VfsNet
. - Для работы с файловой системой используются сущности
VfsRamfs
иVfsSdCardFs
.
Сущность Client
использует стандартные функции библиотеки libc
для получения информации о сетевых интерфейсах (ioctl
), которые транслируются в обращения к сущности VFS по IPC.
Сущность Env
используется для передачи переменных окружения и аргументов функции main другим сущностям.
Для сборки и запуска примера используется система CMake из состава KasperskyOS Community Edition.
Поставляемые ресурсы
В пример входят следующие файлы конфигурации:
./resources/include/config.h.in
содержит описание бэкенда файловой системы, которая будет использоваться в решении:sdcard
илиramfs
.Для каждого бэкенда в решении также используется отдельная сущность VFS:
VfsSdCardFs
илиVfsRamfs
соответственно.- Директории
./resources/ramfs/etc
и/resources/sdcard/etc
содержат файлы конфигурации для сущностей VFS иDhcpcd
.
Файлы примера
Код примера и скрипты для сборки находятся по следующему пути:
/opt/KasperskyOS-Community-Edition-<version>/examples/multi_vfs_dhcpcd
Сборка и запуск примера
Чтобы запустить пример на QEMU, перейдите в директорию с примером, соберите пример и выполните следующие команды:
$ cd build/einit
# Перед выполнением следующей команды убедитесь, что путь к
# директории с исполняемым файлом qemu-system-arm сохранен в
# переменной окружения PATH. В случае отсутствия
# добавьте его в переменную PATH.
$ qemu-system-arm -m 2048 -machine vexpress-a15 -nographic -monitor none -sd sdcard0.img -kernel kos-qemu-image
Также см. "Сборка и запуск примеров".