Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018)

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

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

Embox — открытый проект по созданию конфигурируемой операционной системы для встроенных систем.

Проект начинался «с нуля» как маленькая оболочка для отладки аппаратуры и драйверов.

Вскоре наработки были выложены в open-source, параллельно был запущен студенческий проект на кафедре системного программирования СПбГУ. Проект является хорошей базой для отработки практических навыков в системном программировании и платформой для вовлечения студентов в мир open-source.

Видео

on youtube

Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.

Презентация

Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018).pdf Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018).pdf Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018).pdf Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018).pdf Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018).pdf Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018).pdf Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018).pdf Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018).pdf Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018).pdf Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018).pdf

Thesis

Embox — открытый проект по созданию конфигурируемой операционной системы для встроенных систем. Проект начинался «с нуля» как маленькая оболочка для отладки аппаратуры и драйверов. Вскоре наработки были выложены в open-source, параллельно был запущен студенческий проект на кафедре системного программирования СПбГУ. Проект является хорошей базой для отработки практических навыков в системном программировании и платформой для вовлечения студентов в мир open-source.

Одним из основных недостатков современного IT-образования является отрыв теоретического обучения от промышленных задач. Это отметил Бьерн Страуструп в своей статье «What should we teach new software developers? Why?». В частности, он пишет о том, что учебные задачи совсем не похожи на промышленные, а глубокое знание теории вовсе не гарантирует способность применить полученные знания на практике.

Для практических занятий по курсу построения операционных систем и системного ПО в ведущих IT-вузах, как правило, используют существующие ОС, так или иначе адаптированные для обучения или изначально разработанные для применения в академических целях. Самая известная ОС для обучения — это, конечно, MINIX Эндрю Таненбаума. Но существуют и другие, например, операционная система Nachos, используемая в университете Беркли и предназначенная именно для обучения студентов. В том же университете Беркли для исследований в области ОС и сетевых технологий используют различные версии BSD. В MIT используется упрощенная версия UNIX Xv6.

Все приведённые примеры, конечно же, являются проектами с открытым исходным кодом. В то же время эти проекты можно разделить на две категории: первые используются исключительно в образовательных целях, вторые имеют попытки применения в промышленности. Существенную разницу между этими двумя категориями проектов можно увидеть на истории развития проекта MINIX. Автор этой ОС, Эндрю Таненбаум, отказывался принимать патчи от сторонних разработчиков для первых двух версий системы. Мотивировалось это тем, что проект является исключительно образовательным. Третья версия была доработана для использования в промышленных системах и сейчас является полноценным open-source проектом с сообществом, которое его развивает и поддерживает. Таким образом, студенты стали более вовлеченными в проект, они уже не только читают код, но и могут предлагать его развитие, тем самым участвуя в команде распределённого промышленного проекта. Кроме того, на базе проекта могут проводиться и научно-исследовательские работы.

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

Embox — открытый проект по созданию конфигурируемой операционной системы для встроенных систем. Изначально проект был закрытым и представлял из себя внутреннюю разработку в виде простой оболочки для отладки аппаратуры и драйверов. С ростом функциональности проект обрёл черты не большой, но полноценной ОС для встроенных устройств. Поскольку в проекте удалось сохранить простую и понятную структуру, а также небольшой объем исходного кода, то было принято решение использовать его для улучшения практических навыков студентов Мат-Меха СПбГУ. Причём основной акцент был сделан именно на получении законченного, пусть и небольшого, результата. То есть на базе общего проекта Embox организовываются студенческие проекты с различными целями, например, одним из первых подпроектов была адаптация Embox для робо-конструкторов lego mindstorm NXT2. При этом необходимо было не только портировать Embox на данную платформу, но и организовать работу по протоколу bluetooth и реализовать различные алгоритмы управления (например, стабилизацию обратного маятника).

Участие в «живом», развивающемся проекте позволяло студентам более полно почувствовать все стадии разработки программного обеспечения. При этом Embox за счёт своей изначальной простоты сохранял свойства обучающего проекта с относительно низким порогом вхождения.




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

Embox — студенческий проект в области системного программирования (Антон Бондарев, OSEDUCONF-2018)!.jpg


Plays:56   Comments:0