KasperskyOS Community Edition 1.3

Функции расширения

Расширение автоматически обнаруживает в открытом рабочем пространстве проект KasperskyOS и запускается. Параметр обнаружения – наличие в рабочем пространстве файла .vscode/kos_project.json или директории einit. Если расширение автоматически не активировалось в директории, но вы уверены, что это проект KasperskyOS, то выполните команду KOS: Activate extension in this directory. Команда активирует расширение и создает в директории проекта пустой файл .vscode/kos_project.json. Чтобы отменить ручную активацию, удалите этот файл.

После запуска расширение добавляет на нижнюю панель редактора кода Visual Studio Code следующие кнопки:

  • lower_panel_select_target – выбор цели сборки;
  • lower_panel_run – запуск проекта в QEMU;
  • lower_panel_run_with_debug – запуск выбранной цели с отладкой;
  • lower_panel_build – сборка всех целей;
  • lower_panel_build_user_target – сборка выбранной цели;
  • lower_panel_clean – очистка директории сборки;
  • lower_panel_build_type – переключение типа сборки;
  • lower_panel_build_with_tests – включение/отключение сборки проекта с тестами;
  • lower_panel_build_target – выбор целевой платформы для сборки;
  • lower_panel_select_device – выбор устройства или эмулятора QEMU;
  • vscode_sdk_version – отображение версии SDK.

Функции, которые предоставляют кнопки, также можно вызвать из командной строки редактора кода, открываемой по нажатию на клавишу F1. Все команды имеют префикс KOS:.

Работа с базовым образом KasperskyOS

Расширение позволяет не выполнять полную сборку решения на базе KasperskyOS после внесения изменений в код прикладной программы, а вместо этого использовать следующий сценарий:

  1. Запуск в эмуляторе QEMU базового образа решения на базе KasperskyOS, входящего в состав SDK. В базовом образе содержатся все системные программы, необходимые для запуска и отладки программ, упакованных в KPA-пакеты.
  2. Сборка прикладной программы и ее упаковка в KPA-пакет. Для того чтобы упаковать прикладную программу в KPA-пакет, необходимо использовать CMake-команды библиотеки kpa.
  3. Установка программы из KPA-пакета в запущенный на шаге 1 образ решения и ее запуск под управлением KasperskyOS.
  4. Внесение изменений в код прикладной программы.
  5. Повторение шагов 2-5.
  6. Расширение также позволяет отлаживать программу, запущенную в базовом образе KasperskyOS. Подробнее см. "Отладка программ в составе KPA-пакета".

Создание базового описания политики безопасности решения

Расширение позволяет автоматически создавать простейшие описания политики безопасности решения для проекта.

Чтобы создать базовое описание политики безопасности:

  1. Убедитесь, что расширение KasperskyOS SDK Extension установлено и активно.
  2. Нажмите на клавишу F1.
  3. Выполните команду KOS: Generate policy file for current project.
  4. Выберите тип базового описания политики, который вы хотите создать:
    • Grant all permissions - создать простейшее описание политики безопасности решения, которая разрешает любые взаимодействия процессов любых классов между собой и с ядром KasperskyOS, а также разрешает любому процессу инициализировать запуск процессов.
    • Grant necessary permissions - создать простейшее описание политики безопасности решения, которая разрешает любые взаимодействия процессов любых классов между собой и с ядром KasperskyOS, а также определяет необходимые разрешения для инициализации запуска процессов на основе файла init.yaml.in в составе проекта.
  5. Введите имя файла для сохранения созданного описания политики безопасности.

Эти политики можно использовать только в качестве заглушек на ранних стадиях разработки решения на базе KasperskyOS, чтобы модуль безопасности Kaspersky Security Module "не мешал" взаимодействиям. В реальном решении на базе KasperskyOS применять такие политики недопустимо.

Запуск тестов

После активации расширения на боковой панели Visual Studio Code появляется вкладка Testing – left_panel_testing. При выборе вкладки Testing в окне редактора кода отобразится дерево тестов, созданных с помощью библиотеки Google Test и обнаруженных в файлах директории test/.

Для запуска тестов нажмите на кнопку run_tests. По умолчанию запускаются все обнаруженные тесты, но вы можете выбирать определенные тесты на вкладках с исходным кодом тестов или определенные группы тестов, выбирая их из дерева всех тестов. Запускать можно только тесты, которые добавлены в файлы CMakeLists.txt для сборки программ с помощью CMake-команд kl_kos_add_small_test() или generate_kos_test() из CMake-библиотеки TestGenerator, поставляемой в составе SDK.

Результаты работы тестов, а также файлы журналов находятся в директории <директория_сборки>/bin/tests/output.

Запуск тестов политик безопасности решения

Расширение позволяет запускать тесты политики безопасности решения для проекта, созданные на основе описания политики безопасности решения.

Чтобы собрать и выполнить тесты политики безопасности решения:

  1. Убедитесь, что описание политики безопасности решения содержит тесты политики безопасности решения.
  2. Убедитесь, что CMake-команды сборки тестов политики безопасности решения добавлены в один из файлов CMakeLists.txt проекта.
  3. Убедитесь, что расширение KasperskyOS SDK Extension установлено и активно.
  4. Выполните сборку всех целей, нажав на кнопку lower_panel_build на нижней панели.
  5. Нажмите на кнопку lower_panel_select_target выбора цели сборки и выберите цель с именем kos-qemu-image-PalTest<N>-sim, где N – индекс PSL-файла в списке PSL-файлов, содержащих тесты политики безопасности решения.
  6. Нажмите на кнопку сборки выбранной цели lower_panel_build_user_target.

В этом разделе

Запуск базового образа решения на базе KasperskyOS

Сборка программ в Visual Studio Code

Запуск программ в базовом образе решения

Отладка программы в составе KPA-пакета

В начало
[Topic vscode_ext_use]

Запуск базового образа решения на базе KasperskyOS

Базовый образ решения на базе KasperskyOS входит в состав SDK и содержит все системные программы, необходимые для запуска и отладки программ, упакованных в KPA-пакеты.

Чтобы запустить базовый образ решения KasperskyOS из Visual Studio Code:

  1. Убедитесь, что расширение KasperskyOS SDK Extension установлено и активно.
  2. Нажмите на кнопку выбора устройства lower_panel_select_device на нижней панели или нажмите на клавишу F1 и выполните команду KOS: Select Device.
  3. Выберите Create new emulator.
  4. Выберите kos_base-dev.
  5. В отобразившемся поле введите дополнительные флаги QEMU и нажмите Enter, либо сразу нажмите Enter чтобы использовать флаги по умолчанию.
  6. В отобразившемся поле введите имя нового эмулятора и нажмите Enter, либо сразу нажмите Enter чтобы использовать автоматически сгенерированное имя.
  7. Дождитесь завершения предыдущей команды.
  8. В отобразившемся уведомлении о создании нового эмулятора нажмите на кнопку Start.
  9. Дождитесь окончания загрузки эмулятора.
В начало
[Topic vscode_emu_start]

Сборка программ в Visual Studio Code

Чтобы собрать программу в Visual Studio Code:

  1. Откройте директорию проекта программы в Visual Studio Code.
  2. Убедитесь, что проект верно определился по наличию дополнительных кнопок расширения на нижней панели. Если кнопки не появились, то активируйте решение вручную, выполнив команду KOS: Activate extension in this directory.
  3. Выберите архитектуру сборки, нажав на кнопку выбора целевой платформы для сборки lower_panel_build_target.
  4. Выполните сборку всех целей, нажав на кнопку lower_panel_build на нижней панели.
В начало
[Topic vscode_app_build]

Запуск программ в базовом образе решения

Если запускаемая программа использует файловые системы (через компонент VFS), то перед запуском необходимо:

  1. Вызвать через меню окно параметров расширения: FilePreferencesSettings, далее ExtensionsKasperskyOS.
  2. Выставить значение client:kl.VfsSdCardFs для переменной окружения VFS_FILESYSTEM_BACKEND в параметре Application Environment Variables.

Чтобы запустить программу в базовом образе решения:

  1. Откройте директорию проекта программы в Visual Studio Code.
  2. Убедитесь, что проект верно определился по наличию дополнительных кнопок расширения на нижней панели. Если кнопки не появились, то активируйте решение вручную, выполнив команду KOS: Activate extension in this directory.
  3. Убедитесь, что базовый образ решения запущен в соответствии с инструкцией в разделе "Запуск базового образа решения на базе KasperskyOS".
  4. Нажмите на кнопку выбора устройства или эмулятора QEMU lower_panel_select_device на нижней панели.
  5. Выберите запущенный ранее базовый образ решения.
  6. Выполните сборку программы в соответствии с инструкцией в разделе "Сборка программы в Visual Studio Code".
  7. Убедитесь, для программа упакована в KPA-пакет.

    Для того чтобы упаковать прикладную программу в KPA-пакет, необходимо использовать CMake-команды библиотеки kpa.

  8. Нажмите на кнопку выбора цели lower_panel_select_target и в раскрывающемся списке выберите собранный KPA-пакет программы, подписанный в списке как [application].
  9. Нажмите на кнопку запуска lower_panel_run. Программа будет установлена в выбранный базовый образ и автоматически запущена.
В начало
[Topic vscode_app_start]

Отладка программы в составе KPA-пакета

Отладка программы в составе KPA-пакета, в отличие от отладки программ в решении на базе KasperskyOS, позволяет не выполнять полную сборку решения на базе KasperskyOS после внесения изменений в код прикладной программы.

Сценарий отладки программы в составе KPA-пакета выглядит следующим образом:

  1. Установка расширения KasperskyOS SDK Extension.
  2. Сборка прикладной программы и ее упаковка в KPA-пакет. Для того чтобы упаковать прикладную программу в KPA-пакет, необходимо использовать CMake-команды библиотеки kpa.
  3. Запуск базового образа KasperskyOS из состава KasperskyOS Community Edition со встроенным в ядро GDB-сервером.
  4. Подключение отладчика к GDB-серверу ядра. Отладчик можно подключить при старте программы или при работе программы. Подробнее:
  5. Отладка программы с помощью графического интерфейса Visual Studio Code. Подробнее см. документацию Visual Studio Code: https://code.visualstudio.com/docs/editor/debugging.
В начало
[Topic kpa_debug]

Подключение отладчика при старте программы в базовом образе

Чтобы подключить отладчик к GDB-серверу ядра при старте программы в QEMU с помощью расширения Visual Studio Code:

  1. Установите точку останова в исходном коде программы перед отлаживаемым фрагментом.
  2. Соберите программу. Для того чтобы упаковать прикладную программу в KPA-пакет, необходимо использовать CMake-команды библиотеки kpa.
  3. Запустите базовый образ KasperskyOS из состава KasperskyOS Community Edition.
  4. Дождитесь окончания загрузки базового образа и установите программу с помощью команды KOS: Install package.
  5. В боковой панели Visual Studio Code нажмите Run and debug > create a launch.json file , а затем выберите KasperskyOS Debugger.

    В результате будет создан файл конфигурации отладки launch.json.

  6. В файле launch.json в поле конфигурации с именем (kos/gdb) Launch & debug application укажите путь до бинарного файла вашей программы, полученного в результате сборки и имя программы. В поле eiid необходимо указать значение kl.Kds.
  7. Запустите отладку, нажав на кнопку (kos/gdb) Launch & debug application на нижней панели.
  8. В раскрывающемся списке выберите конфигурацию с именем (kos/gdb) Launch & debug application.
  9. В отладочной консоли появится сообщение, что программа готова к отладке. Нажмите на кнопку Continue и выполнение программы будет остановлено на выбранной в п.1 точке останова.
В начало
[Topic kpa_debug_start]

Подключение отладчика при работе программы, запущенной в базовом образе

Чтобы подключить отладчик к GDB-серверу ядра при работе программы в QEMU с помощью расширения Visual Studio Code:

  1. Добавьте в функцию main программы бесконечный цикл. Это позволит отладчику подключиться к работающей программе.
  2. Установите точку останова в исходном коде программы перед отлаживаемым фрагментом.
  3. Соберите программу. Для того чтобы упаковать прикладную программу в KPA-пакет, необходимо использовать CMake-команды библиотеки kpa.
  4. Запустите базовый образ KasperskyOS из состава KasperskyOS Community Edition.
  5. В боковой панели Visual Studio Code нажмите Run and debug > create a launch.json file , а затем выберите KasperskyOS Debugger.

    В результате будет создан файл конфигурации отладки launch.json.

  6. В файле launch.json в поле конфигурации с именем (kos/gdb) Attach to process укажите путь до бинарного файла вашей программы, полученного в результате сборки.
  7. Запустите программу в базовом образе.
  8. Запустите отладку, нажав на кнопку (kos/gdb) Attach to process на нижней панели.
  9. В раскрывающемся списке выберите конфигурацию с именем (kos/gdb) Attach to process и выберите имя программы для отладки.
  10. В отладочной консоли появится сообщение, что программа готова к отладке. Нажмите на кнопку Continue и выполнение программы будет остановлено на выбранной в п.2 точке останова.
В начало
[Topic kpa_debug_attach]