KasperskyOS Community Edition 1.0

Пример multi_vfs_ntpd

Этот пример показывает как использовать ntp-сервис в KasperskyOS. Сущность kl.Ntpd поставляется в составе KasperskyOS Community Edition и представляет собой реализацию ntp-клиента, который в фоновом режиме получает параметры времени от внешних ntp-серверов и передает их ядру KasperskyOS.

Пример также демонстрирует использование разных виртуальных файловых систем (далее VFS) в одном решении. В примере для доступа к функциям работы с файловой системой и функциям работы с сетью используются разные VFS:

  • Для работы с сетью используется сущность VfsNet.
  • Для работы с файловой системой используются сущности VfsRamfs и VfsSdCardFs.

Сущность Client использует стандартные функции библиотеки libc для получения информации о времени, которые транслируются в обращения к сущностям 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 и Ntpd.

Файлы примера

Код примера и скрипты для сборки находятся по следующему пути:

/opt/KasperskyOS-Community-Edition-<version>/examples/multi_vfs_ntpd

Сборка и запуск примера

Чтобы запустить пример на 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

Также см. "Сборка и запуск примеров".