Embox — Essential toolbox for embedded development (Антон Бондарев, OSSDEVCONF-2017)

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

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

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

Одной из причин, побудивших студентов и преподавателей Мат-Меха СПбГУ создать собственную операционную систему, было желание использовать возможности Linux на системах с ограниченными ресурсами.

Видео

on youtube

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

Презентация

Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf Embox — Essential toolbox for embedded development (OSSDEVCONF-2017).pdf

Thesis

Частично аппаратные ограничения пытался решить uClinux, основной идеей проекта было дать возможность запускать Linux приложения на платформах без аппаратной поддержки MMU (без трансляции адресов). Изменения частично внесены в основное ядро, позволив использовать режим NOMMU в Linux. Но данный проект не позволял решить проблему запуска ПО на платформе с несколькими сотнями килобайт или парой мегабайт памяти. На решение подобных задач направлены другие проекты с открытым исходным кодом: eCos, FreeRTOS, Contiki и другие. Данные проекты обычно принято называть realtime operating system (RTOS), вероятно потому, что они подразумевают куда больший контроль над всем ПО в системе, хотя это и не совсем корректно.

Подобные проекты RTOS хоть и решают задачу размещения ПО в ограниченном объеме памяти и более легкого доступа к аппаратуре, но зачастую порождают проблему совместимости ПО. Дело в том, что API в этих системах не стандартизовано, и код прикладных программ приходится адаптировать, а зачастую и разрабатывать с нуля, тем самым ограничивая применение других проектов с открытым кодом.

Подобную проблему частично пытался решить eCos, но поскольку это была не основная идея проекта, полностью решить проблему не удалось. И на текущий момент есть два проекта, нацеленных на создание «мини-Linux», иными словами, некой платформы позволяющей достаточно просто использовать богатство прикладных программ из мира Linux с posix интерфейсом, но при этом выполняться на платформах с ограниченными ресурсами. Это проекты NuttX и Embox.

В проекте Embox достаточно эффективно удалось решить проблему построения «мини-Linux». С одной стороны система сборки позволяет очень гибко настраивать все параметры системы, включая параметры ядра (например, какой планировщик использовать вытесняющий или нет), с другой стороны достаточно развитая собственная стандартная библиотека позволяет и схожая с Linux модель драйверов, позволяют фактически без изменений использовать сторонние приложения с открытым кодом, а также разрабатывать свои, переносимые приложения и библиотеки. Для упрощения использования сторонних проектов, был разработан набор скриптов встроенных в общую систему сборки, способный скачивать исходный код открытого проекта, накладывать необходимые патчи, сконфигурировать и собрать его стандартным предусмотренным в стороннем проекте методом. При этом результат сборки проекта включается в состав конечного образа Embox и может быть вызван в том числе из командной строки.

Изначально Embox развивался как студенческий проект на Мат-Мехе СПбГУ. Он применялся для практического ознакомления с операционными системами, системным программированием, сетевым программированием и встроенными системами. В дальнейшем проект получил развитие как открытый проект, и в нем стали принимать участие и другие разработчики. Кроме того, на базе открытого проекта ведутся и коммерческие разработки.

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

Embox — Essential toolbox for embedded development (Антон Бондарев, OSSDEVCONF-2017)!.jpg

Plays:72   Comments:0