Embox — Essential toolbox for embedded development (Антон Бондарев, OSSDEVCONF-2017)
Материал из 0x1.tv
- Докладчик
- Антон Бондарев
Embox — открытый проект по созданию конфигурируемой операционной системы для встроенных систем.
Одной из причин, побудивших студентов и преподавателей Мат-Меха СПбГУ создать собственную операционную систему, было желание использовать возможности Linux на системах с ограниченными ресурсами.
Содержание
Видео[править вики-текст]
Презентация[править вики-текст]
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 развивался как студенческий проект на Мат-Мехе СПбГУ. Он применялся для практического ознакомления с операционными системами, системным программированием, сетевым программированием и встроенными системами. В дальнейшем проект получил развитие как открытый проект, и в нем стали принимать участие и другие разработчики. Кроме того, на базе открытого проекта ведутся и коммерческие разработки.
Примечания и ссылки[править вики-текст]
Plays:72 Comments:0

