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