Богомолов В.И.

Разработка слоя портации KasperskyOS CE для 4diac forte

Проект является одним из призеров хакатона в МАИ в 2022 г.

1. Задачи проекта

  • создать слой портации 4diac forte для KasperskyOS Community Edition;
  • разработать программное решение на KasperskyOS для запуска forte;
  • создать пример приложения HELLO с использованием 4diac forte для KasperskyOS.

2. Результат работ по проекту 

  • Модификация программного обеспечения Eclipse 4diac forte. Исходный код: https://github.com/alekseym/forte.git. Добавлен слой портации для учета специфики работы forte в Kaspersky OS CE, внесены необходимые модфикации с исходный код (работа с параметрами main и сетью) и сборочные файлы.
  • Программное решение для запуска forte под KasperskyOS (https://github.com/alekseym/forte_on_kos) позволяет запускать проекты 4diac в виде fboot-файлов с диска.

Типовые операции для формирования fboot-файла из проекта 4diac и загрузки его в forte:

Структура программного решения на KasperskyOS для запуска forte:

Тестовое приложение Hello в среде Eclipse 4diac forte находится в репозитории https://github.com/alekseym/forte_app_examples. Приложение cкладывает два числа (1 + 1), выдает на экран сообщение “Hello” и результат сложения. Приложение расположено в каталоге hello. В данном каталоге находится файл проекта hello.sys. Библиотека функциональных блоков находится в каталоге Type Library.

3. Проверка работоспособности решения 

Для проверки работоспособности проекта hello необходимо сделать следующие действия.

1. Установить IDE Eclipse 4diac (среду разработки можно скачать на странице проекта https://www.eclipse.org/4diac/en_dow.php).

2. Извлечь исходный код проекта примера для 4diac https://github.com/alekseym/forte_app_examples.git.

3. Запустить среду разработки Eclipse 4diac.

4. Открыть существующий проект hello в IDE при помощи команды File/Open project from file system (из папки forte_app_examples/hello). Пример того, как выглядит приложение hello в IDE показан ниже.

5. Экспортировать fboot-файл для проекта hello. Для этого выбрать в дереве проекта system-configuration/FORTE_PC и в меню, которое появляется при нажатии на правую клавишу мыши, выбрать Create FORTE boot-files… . Отметим, что 4diac IDE создает fboot-файл с другим именем и необходимо переименовать его в forte.bootfile. Пример содержимого файла:

6. Извлечь исходный код для программного решения на KasperskyOS для запуска forte под KasperskyOS (git clone https://github.com/alekseym/forte_on_kos.git)

cd forte_on_kos

git checkout fboot_supported

git submodule update --init --recursive

7. Скопировать forte.bootfile в каталог forte_on_kos/resources/files/ (аналогичный файл там уже есть)

8. Собрать приложение для Kaspersky OS CE и запустить его в QEMU

./cross-build.sh

9. В результате запуска проекта на экран должно быть выдано сообщение ’Hello’=2:

10. Видео загрузки проекта: https://cloud.mail.ru/public/axZw/usB4Fyodt

4. Дополнительная информация по проекту

  • Основная идея проекта и результат работ был опубликован на Habr.com https://habr.com/ru/post/676392
  • В рамках XLVIII Международной молодежной научной конференции «Гагаринские чтения — 2022» (https://gagarin.mai.ru/files/2022/abstracts2022.pdf) автором проекта сделан доклад «Подходы к портации среды исполнения IEC 61499 на Kaspersky OS», который занял 3-е место в секции «Вычислительные системы, сети и информационные технологии» и вошел в сборник тезисов работ конференции: XLVIII Гагаринские чтения 2022. — М.: Издательство «Перо», 2022. — Мб. [Электронное издание]. ISBN 978-5-00204-326-2