education
Задания для знакомства с KasperskyOS Community Edition SDK
Ознакомиться с KasperskyOS Community Edition SDK
- Посмотреть официальную документацию и возвращаться к ней при возникающих вопросах https://support.kaspersky.ru/help/KCE/1.2/ru-RU/whats_new.htm .
- (желательно) пройти бесплатный курс Разработка для KasperskyOS .
Подготовить рабочее окружение
- Скачать, настроить, запустить пример “hello” из поставки KasperskyOS Community Edition SDK https://os.kaspersky.ru/development/ (требуется Linux дистрибутив для запуска инструментов разработчика).
- Настроить работу Git.
- Создать приватный репозиторий на gitflic.ru
- Выбрать задания
- (сложно) Портировать проект
- Модульные unit тесты (тестировать изолированные, простые функции без сложных зависимостей)
- PAL тесты (тестировать уже написанные правила или собственные)
Выполнение заданий
- Выбранные задания выполнены и выложены в собственный репозиторий
- Написан отчёт о проделанной работе:
- формат Markdown имя файла REPORT.md;
- указаны выполненные задания;
- коротко описаны проделанные изменения;
- описан способ запуска тестов;
- присутствует журнал запуска (вывод) выполненных заданий;
- Собственный репозиторий не содержит лишнего (особенно бинарных файлов сборок, компонентов SDK и прочее), только исходные коды решения
- История репозитория содержит промежуточные этапы работы
- Предоставить доступ к репозиторию проверяющему
Портировать проект
Задание подразумевает: - взять проект с открытым исходным кодом на C/C++ и портировать (перенести) его на KasperskyOS Community Edition при помощи KasperskyOS Community Edition SDK; - проект может быть: приложением, компонентом, библиотекой; - написать модульные unit тесты к этому проекту или иным образом продемонстрировать работу портированного кода.
Модульные unit тесты
Задания представляют собой написание unit тестов для примеров из поставки KasperskyOS Community SDK. Модульное Unit тесты это программы проверяющие часть проекта, модуль. Это может быть компонент, часть компонента или функция. Для модульного тестирования используется библиотека GoogleTest. Документация: https://google.github.io/googletest/ Примеры модульных тестов можно найти: - в KasperskyOS Community Edition SDK в папке examples (пример secure_login) или - в проекте модуля безопасности от СПбГУ https://gitflic.ru/project/learning-cyberimmunity/cyberimmune-systems-autonomous-delivery-drone-with-kos (папка kos/unit_tests).
PAL тесты
Задания представляют собой написание PAL тестов. Policy Assertion Language (PAL) – декларативный язык для создания тестов политики безопасности решения.
Примеры PAL тестов можно найти: - в KasperskyOS Community Edition SDK в папке examples (пример ping) - в проекте модуля безопасности от СПбГУ https://gitflic.ru/project/learning-cyberimmunity/cyberimmune-systems-autonomous-delivery-drone-with-kos (папка kos/einit/drone_controller/src/).
Список заданий
Задания для версии KasperskyOS Community Edition SDK 1.2.0.89 .
Задание №0 подразумевает портирование открытого проекта на KasperskyOS Community Edition.
В таблице указаны примеры из папки examples поставки SDK для которых можно писать тесты.
Обращаем внимание, что не все примеры подходят для выполнения заданий, столкнувшись с трудностями стоит взять другой пример, а трудности описать через Обратную связь.
№ | имя примера | Unit тесты | PAL тесты | Комментарии |
---|---|---|---|---|
1 | barcode_scanner | - | - | Требует Raspberry Pi 4b |
2 | defer_to_kernel | |||
3 | device_access | |||
4 | echo | |||
5 | embedded_vfs | |||
6 | gpio_echo | - | - | Требует Raspberry Pi 4b |
7 | gpio_input | - | - | Требует Raspberry Pi 4b |
8 | gpio_interrupt | - | - | Требует Raspberry Pi 4b |
9 | gpio_output | - | - | Требует Raspberry Pi 4b |
10 |
|
- | - | Слишком маленький проект |
11 | i2c_ds1307_rtc | - | - | Требует Raspberry Pi 4b |
12 | iperf_separate_vfs | |||
13 | koslogger | |||
14 | messagebus | |||
15 | mqtt_publisher | |||
16 | mqtt_subscriber | |||
17 | multi_vfs_dhcpcd | |||
18 | multi_vfs_dns_client | |||
19 | multi_vfs_ntp | |||
20 | dnet2_with_separate_vfs | |||
21 | net_with_separate_vfs | |||
22 | pcre | |||
23 | perfcnt | |||
24 | ping | уже есть | ||
25 | secure_logger | |||
26 | secure_login | уже есть | ||
27 | separate_storage | |||
28 | shared_libs | |||
29 | spi_check_regs | - | - | Требует Raspberry Pi 4b |
30 | uart | - | - | Требует Raspberry Pi 4b |
31 | vfs_extfs | |||
32 | watchdog_system_reset | - | - | Требует Raspberry Pi 4b |
Обратная связь
Пожалуйста присылайте вопросы и пожелания через раздел Проблемы данного репозитория.