Содержание
Функции расширения
Расширение автоматически обнаруживает в открытом рабочем пространстве проект KasperskyOS и запускается. Параметр обнаружения – наличие в рабочем пространстве файла .vscode/kos_project.json
или директории einit
. Если расширение автоматически не активировалось в директории, но вы уверены, что это проект KasperskyOS, то выполните команду KOS: Activate extension in this directory
. Команда активирует расширение и создает в директории проекта пустой файл .vscode/kos_project.json
. Чтобы отменить ручную активацию, удалите этот файл.
После запуска расширение добавляет на нижнюю панель редактора кода Visual Studio Code следующие кнопки:
– выбор цели сборки;
– запуск проекта в QEMU;
– запуск выбранной цели с отладкой;
– сборка всех целей;
– сборка выбранной цели;
– очистка директории сборки;
– переключение типа сборки;
– включение/отключение сборки проекта с тестами;
– выбор целевой платформы для сборки;
– выбор устройства или эмулятора QEMU;
– отображение версии SDK.
Функции, которые предоставляют кнопки, также можно вызвать из командной строки редактора кода, открываемой по нажатию на клавишу F1. Все команды имеют префикс KOS:
.
Работа с базовым образом KasperskyOS
Расширение позволяет не выполнять полную сборку решения на базе KasperskyOS после внесения изменений в код прикладной программы, а вместо этого использовать следующий сценарий:
- Запуск в эмуляторе QEMU базового образа решения на базе KasperskyOS, входящего в состав SDK. В базовом образе содержатся все системные программы, необходимые для запуска и отладки программ, упакованных в KPA-пакеты.
- Сборка прикладной программы и ее упаковка в KPA-пакет. Для того чтобы упаковать прикладную программу в KPA-пакет, необходимо использовать
CMake
-команды библиотеки kpa. - Установка программы из KPA-пакета в запущенный на шаге 1 образ решения и ее запуск под управлением KasperskyOS.
- Внесение изменений в код прикладной программы.
- Повторение шагов 2-5.
- Расширение также позволяет отлаживать программу, запущенную в базовом образе KasperskyOS. Подробнее см. "Отладка программ в составе KPA-пакета".
Создание базового описания политики безопасности решения
Расширение позволяет автоматически создавать простейшие описания политики безопасности решения для проекта.
Чтобы создать базовое описание политики безопасности:
- Убедитесь, что расширение KasperskyOS SDK Extension установлено и активно.
- Нажмите на клавишу F1.
- Выполните команду
KOS: Generate policy file for current project
. - Выберите тип базового описания политики, который вы хотите создать:
Grant all permissions
- создать простейшее описание политики безопасности решения, которая разрешает любые взаимодействия процессов любых классов между собой и с ядром KasperskyOS, а также разрешает любому процессу инициализировать запуск процессов.Grant necessary permissions
- создать простейшее описание политики безопасности решения, которая разрешает любые взаимодействия процессов любых классов между собой и с ядром KasperskyOS, а также определяет необходимые разрешения для инициализации запуска процессов на основе файла init.yaml.in в составе проекта.
- Введите имя файла для сохранения созданного описания политики безопасности.
Эти политики можно использовать только в качестве заглушек на ранних стадиях разработки решения на базе KasperskyOS, чтобы модуль безопасности Kaspersky Security Module "не мешал" взаимодействиям. В реальном решении на базе KasperskyOS применять такие политики недопустимо.
Запуск тестов
После активации расширения на боковой панели Visual Studio Code появляется вкладка Testing – . При выборе вкладки Testing в окне редактора кода отобразится дерево тестов, созданных с помощью библиотеки Google Test и обнаруженных в файлах директории
test/
.
Для запуска тестов нажмите на кнопку . По умолчанию запускаются все обнаруженные тесты, но вы можете выбирать определенные тесты на вкладках с исходным кодом тестов или определенные группы тестов, выбирая их из дерева всех тестов. Запускать можно только тесты, которые добавлены в файлы
CMakeLists.txt
для сборки программ с помощью CMake
-команд kl_kos_add_small_test()
или generate_kos_test()
из CMake
-библиотеки TestGenerator, поставляемой в составе SDK.
Результаты работы тестов, а также файлы журналов находятся в директории <директория_сборки>/bin/tests/output
.
Запуск тестов политик безопасности решения
Расширение позволяет запускать тесты политики безопасности решения для проекта, созданные на основе описания политики безопасности решения.
Чтобы собрать и выполнить тесты политики безопасности решения:
- Убедитесь, что описание политики безопасности решения содержит тесты политики безопасности решения.
- Убедитесь, что
CMake
-команды сборки тестов политики безопасности решения добавлены в один из файловCMakeLists.txt
проекта. - Убедитесь, что расширение KasperskyOS SDK Extension установлено и активно.
- Выполните сборку всех целей, нажав на кнопку
на нижней панели.
- Нажмите на кнопку
выбора цели сборки и выберите цель с именем
kos-qemu-image-PalTest<N>-sim
, где N – индекс PSL-файла в списке PSL-файлов, содержащих тесты политики безопасности решения. - Нажмите на кнопку сборки выбранной цели
.
Запуск базового образа решения на базе KasperskyOS
Базовый образ решения на базе KasperskyOS входит в состав SDK и содержит все системные программы, необходимые для запуска и отладки программ, упакованных в KPA-пакеты.
Чтобы запустить базовый образ решения KasperskyOS из Visual Studio Code:
- Убедитесь, что расширение KasperskyOS SDK Extension установлено и активно.
- Нажмите на кнопку выбора устройства
на нижней панели или нажмите на клавишу
F1
и выполните командуKOS: Select Device
. - Выберите Create new emulator.
- Выберите kos_base-dev.
- В отобразившемся поле введите дополнительные флаги QEMU и нажмите Enter, либо сразу нажмите Enter чтобы использовать флаги по умолчанию.
- В отобразившемся поле введите имя нового эмулятора и нажмите Enter, либо сразу нажмите Enter чтобы использовать автоматически сгенерированное имя.
- Дождитесь завершения предыдущей команды.
- В отобразившемся уведомлении о создании нового эмулятора нажмите на кнопку Start.
- Дождитесь окончания загрузки эмулятора.
Сборка программ в Visual Studio Code
Чтобы собрать программу в Visual Studio Code:
- Откройте директорию проекта программы в Visual Studio Code.
- Убедитесь, что проект верно определился по наличию дополнительных кнопок расширения на нижней панели. Если кнопки не появились, то активируйте решение вручную, выполнив команду KOS: Activate extension in this directory.
- Выберите архитектуру сборки, нажав на кнопку выбора целевой платформы для сборки
.
- Выполните сборку всех целей, нажав на кнопку
на нижней панели.
Запуск программ в базовом образе решения
Если запускаемая программа использует файловые системы (через компонент VFS), то перед запуском необходимо:
- Вызвать через меню окно параметров расширения: File → Preferences → Settings, далее Extensions → KasperskyOS.
- Выставить значение
client:kl.VfsSdCardFs
для переменной окруженияVFS_FILESYSTEM_BACKEND
в параметреApplication Environment Variables
.
Чтобы запустить программу в базовом образе решения:
- Откройте директорию проекта программы в Visual Studio Code.
- Убедитесь, что проект верно определился по наличию дополнительных кнопок расширения на нижней панели. Если кнопки не появились, то активируйте решение вручную, выполнив команду KOS: Activate extension in this directory.
- Убедитесь, что базовый образ решения запущен в соответствии с инструкцией в разделе "Запуск базового образа решения на базе KasperskyOS".
- Нажмите на кнопку выбора устройства или эмулятора QEMU
на нижней панели.
- Выберите запущенный ранее базовый образ решения.
- Выполните сборку программы в соответствии с инструкцией в разделе "Сборка программы в Visual Studio Code".
- Убедитесь, для программа упакована в KPA-пакет.
Для того чтобы упаковать прикладную программу в KPA-пакет, необходимо использовать
CMake
-команды библиотеки kpa. - Нажмите на кнопку выбора цели
и в раскрывающемся списке выберите собранный KPA-пакет программы, подписанный в списке как
[application]
. - Нажмите на кнопку запуска
. Программа будет установлена в выбранный базовый образ и автоматически запущена.
Отладка программы в составе KPA-пакета
Отладка программы в составе KPA-пакета, в отличие от отладки программ в решении на базе KasperskyOS, позволяет не выполнять полную сборку решения на базе KasperskyOS после внесения изменений в код прикладной программы.
Сценарий отладки программы в составе KPA-пакета выглядит следующим образом:
- Установка расширения KasperskyOS SDK Extension.
- Сборка прикладной программы и ее упаковка в KPA-пакет. Для того чтобы упаковать прикладную программу в KPA-пакет, необходимо использовать
CMake
-команды библиотеки kpa. - Запуск базового образа KasperskyOS из состава KasperskyOS Community Edition со встроенным в ядро GDB-сервером.
- Подключение отладчика к GDB-серверу ядра. Отладчик можно подключить при старте программы или при работе программы. Подробнее:
- Отладка программы с помощью графического интерфейса Visual Studio Code. Подробнее см. документацию Visual Studio Code: https://code.visualstudio.com/docs/editor/debugging.
Подключение отладчика при старте программы в базовом образе
Чтобы подключить отладчик к GDB-серверу ядра при старте программы в QEMU с помощью расширения Visual Studio Code:
- Установите точку останова в исходном коде программы перед отлаживаемым фрагментом.
- Соберите программу. Для того чтобы упаковать прикладную программу в KPA-пакет, необходимо использовать
CMake
-команды библиотеки kpa. - Запустите базовый образ KasperskyOS из состава KasperskyOS Community Edition.
- Дождитесь окончания загрузки базового образа и установите программу с помощью команды
KOS: Install package
. - В боковой панели Visual Studio Code нажмите Run and debug > create a launch.json file , а затем выберите KasperskyOS Debugger.
В результате будет создан файл конфигурации отладки
launch.json
. - В файле
launch.json
в поле конфигурации с именем(kos/gdb) Launch & debug application
укажите путь до бинарного файла вашей программы, полученного в результате сборки и имя программы. В полеeiid
необходимо указать значениеkl.Kds
. - Запустите отладку, нажав на кнопку
(kos/gdb) Launch & debug application
на нижней панели. - В раскрывающемся списке выберите конфигурацию с именем
(kos/gdb) Launch & debug application
. - В отладочной консоли появится сообщение, что программа готова к отладке. Нажмите на кнопку Continue и выполнение программы будет остановлено на выбранной в п.1 точке останова.
Подключение отладчика при работе программы, запущенной в базовом образе
Чтобы подключить отладчик к GDB-серверу ядра при работе программы в QEMU с помощью расширения Visual Studio Code:
- Добавьте в функцию
main
программы бесконечный цикл. Это позволит отладчику подключиться к работающей программе. - Установите точку останова в исходном коде программы перед отлаживаемым фрагментом.
- Соберите программу. Для того чтобы упаковать прикладную программу в KPA-пакет, необходимо использовать
CMake
-команды библиотеки kpa. - Запустите базовый образ KasperskyOS из состава KasperskyOS Community Edition.
- В боковой панели Visual Studio Code нажмите Run and debug > create a launch.json file , а затем выберите KasperskyOS Debugger.
В результате будет создан файл конфигурации отладки
launch.json
. - В файле
launch.json
в поле конфигурации с именем(kos/gdb) Attach to process
укажите путь до бинарного файла вашей программы, полученного в результате сборки. - Запустите программу в базовом образе.
- Запустите отладку, нажав на кнопку
(kos/gdb) Attach to process
на нижней панели. - В раскрывающемся списке выберите конфигурацию с именем
(kos/gdb) Attach to process
и выберите имя программы для отладки. - В отладочной консоли появится сообщение, что программа готова к отладке. Нажмите на кнопку Continue и выполнение программы будет остановлено на выбранной в п.2 точке останова.