Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020)

Материал из 0x1.tv

Докладчик
Антон Бондарев.jpg
Антон Бондарев

Доклад посвящен истории становления проекта Embox. В докладе описываются преимущества участия в open-source проектах и проблемы, которые с этим связаны.

Видео

on youtube

Презентация

Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020).pdf

Thesis

Embox — свободная операционная система реального времени. Идея создания проекта появилась на кафедре системного программирования СПбГУ. Причём изначально основными идея заключалась в том чтобы улучшить навыки системного программирования у студентов вовлекая их в реальный проект. Причем как преподаватели так и студенты являлись участниками свободного распределенного проекта. В котором более опытные участники являются наставниками менее опытных. Участники из преподавателей являлись не руководителями, а скорее кураторами проекта. Например они искали задачи которые могли бы быть решены в рамках проекта.

Первыми пользователями стали сотрудники кафедры Теоритической Кибернетики с Мат-Меха (того же факультета) СПбГУ. Проблема которую предстояло решить группе проекта заключалось в разработке альтернативной прошивки для Lego MindStorm 2. С поставленной задачей группа успешно справилась. Работа велась в рамках студенческого проекта и летней школы на кафедре системного программирования

Кураторы совместно с опытными участниками из студентов параллельно решали организационные вопросы: выбор лицензии, поиск задач и направлений для развития, продвижение и создание сообщества.

В результате выбора лицензии выяснилось, что, поскольку проект ориентирован на встраиваемые системы, для него важна возможность оставлять некоторые части закрытими, следовательно лицензия должна была отвечать этому условию. В итоге проект имеет BSD лицензию.

В результате поиска направлений развития был сформирован ряд задач в которых применение Linux затруднено или не возможно в принципе. К таким задачам относятся: жесткое реальное время, различные виды сертификации и верификации кода, аппаратные ограничения по ресурсам и так далее. С другой стороны появилось понимание, что пользователи хотели бы использовать всю мощь и удобство Linux, а не разрабатывать прикладное программное обеспечение с нуля, как это принято в небольших RTOS. В результате в Embox появлился достаточно хороший слой совместимости c POSIX. Кроме стандарта POSIX разработчики в Embox могут использовать C++ и ряд других языков программирования включая: python, lisp, lua, tcl и так далее.

Желание использовать аппаратные платформы с ограниченными ресурсами привело к созданию собственной системы сборки на основе специального языка описания модулей. Данный подход позволил включать в систему только требуемые части, детально их настраивать и затем генерировать различные артифакты. Все это позволяет создать систему с детально описанной функциональностью.

Кроме экономии ресурсов специальный язык описания модулей позволяет создать артифакты упрощающие верификацию и сертификацию конечных систем, ведь в процессе конфигурирования и сборки строится полная внутренняя модель системы.

Сообщество наряду с направлениями (идеями) проекта является определяющим для любого проекта с открытым кодом. Без сообщества проект не существует, поэтому вопросам построение сообщества было также уделено большое внимание.

На старте проекта сообщество было создано из подмножества студентов Мат-Меха которые хотели бы заниматься подобными вещами. Причем уже упомянутые сотрудники кафедры Теоритической кибернетики, также являются членами этого сообщества, как и любой пользователь проекта. Основным правилом развития проекта Embox, как в прочем и других СПО проектов, стало то что любой участник что то получает в замен на свое участие, и то что он получает должно по его оценке быть адекватно его вкладу в проект.

Мотивацией для студентов, как первых участников проекта была рекомендация на кафедру системного программирования, но очень быстро этой мотивации стало не достаточно для развития проекта. На смену этой мотивации пришли: желание улучшить свои качества как специалиста, а так же улучшить свое резюме, ведь участие в проекте с открытым кодом, может являться визитной карточкой при поступлении на работу. Еще большую мотивацию давали: желание заниматься интересными вещами и возможность реализовать себя.

При этом мотивацией безусловно служили и такие вещи как возможность оформить курсовую, дипломную или научную работы, но они врядли могли являться основными, поскольку тематика и принятые процессы выводят сложность работы в проекте, на более высокий уровень, по сравнению с учебными заданиями.

Необходимо также отметить недостатки или сложности использования СПО проекта в качестве средства обучения. Во первых, подобный подход является более затратным по сравнению с обычными лекциями и практическими занятиями. Во вторых, у студентов происходит очень сложный переход в свободное обучение, по сравнению с обычным подходом, когда сначала начитывают материал, а потом проверяют его усвоение. В третьих, данный метод не может быть использован в качестве обязательного предмета.

Применение Embox как свободного проекта для обучения студентов в данной области показало себя эффективным. Участники проекта существенно улучшали свои навыки как в системном программировании, так и в промышленной разработке программного обеспечения. Подобный результат не мог быть достигнут без вовлечение студентов в качестве полноценных участников в проект.

Embox — путь от студенческой забавы до проекта с открытым кодом (Антон Бондарев, OSEDUCONF-2020)!.jpg

Примечания и ссылки

Plays:69   Comments:1