[Питер] Встреча с техлидом OpenSource ОС Embox: Современное встроенное ПО и классика Таненбаума

В последнее время все более активно развивается тематика встроенных (embedded) систем и многие крупные компании такие как Google, Microsoft, Intel вкладывают огромные ресурсы в исследования и разработки в данной области. Взять, например, проект Майкрософт по созданию специализированной ОС для умных домов homeos или процессоры от Intel для встроенных решений Intel Quark, а о различных исследовательских проектах от Google по робототехнике и говорить не стоит, они и так на слуху.Подобные системы всегда имели свои особенности: ограниченность вычислительных ресурсов, различные процессорные архитектуры, порядок байт и многое другое. Всё это накладывает отпечаток на процесс разработки встроенного ПО. Несмотря на то, что в последнее время для создания встроенных систем все чаще применяются принципы и технологии из области «обычных» десктопных систем, сам процесс остается специфичным. Поэтому считается, что порог вхождения при разработке системного и встроенного ПО очень высокий. Для подготовки хороших специалистов в этой области на Мат-Мехе СПбГУ организовали исследовательский проект по созданию ОС реального времени для встроенных применений Embox, в котором активную роль играют студенты.

4360b358852f4c60a2d6908193160cb1.png

В четверг, 27 ноября, в 20:00 в бизнес-инкубаторе «Ингрия» состоится встреча CodeFreeze с Антоном Бондаревым, техническим руководителем проекта Embox. В докладе будет раскрыты аспекты разработки встроенного ПО на примере этой ОС.Embox — открытая операционная система реального времени, поддерживает шесть процессорных архитектур (x86, ARM, MIPS, Microblaze, SPARC, PPC), сетевой стек, несколько файловых систем (FAT, ext2/¾, jffs2, nfs), несколько языков программирования (java, python, lua, lisp, C/C++) и применяется в различного рода встроенных и телекоммуникационных устройствах, например, маршрутизаторах, потоковых шифраторах, контроллерах управления светодиодами.

Доклад основан на проблемах, с которыми приходилось сталкиваться участникам проекта Embox, поскольку проект существует уже пять лет и он использовался в различных областях, спектр вопросов будет довольно широкий.

В начале речь пойдёт о том, почему вообще такая задача вообще возникла. Проблем было несколько:

во первых нужно было решение для простой отладки аппаратуры. Для этого было сделано минимальное окружение позволяющее автоматически стартовать набор тестов разработанных на языке C, а также очень легковесный shell, способный запускаться фактически на голом железе. во вторых исходный код нужно было сертифицировать, а значит в дистрибутиве должны быть только те части, которые несут функциональную нагрузку. При этом код в неиспользованных ветках #if — #def конструкций не должен бы представлен для сертификации. Для решения этого вопроса была разработана система сборки на основе специального языка описания модулей, которая позволяет избежать #if — #def конструкций и гибко задавать список используемых функциональных модулей и их параметров. в третьих, хотелось, чтобы результаты работы можно было использовать в научной и учебной деятельности, а значит проект должен быть открытым. Затем будет рассказано о развитии Embox и его проблемах с которыми сталкивались разработчики при внедрении в различных областях, в том числе в робототехнике, телекоммуникации и АСУ-ТП. Основная проблема как и для многих встроенных систем заключалась в аппаратной составляющей, отсутствии железа на ранних стадиях разработки, ограниченные ресурсы системы, «дорогое» время работы на реальном оборудовании и многое другое. Например, для запуска на роботах Lego Minstorm 2, который имеет всего 64к ОЗУ пришлось кучу всего умещать в эти скромные килобайты. А для того, чтобы не разрабатывать кучу драйверов для всевозможных контроллеров, был придуман механизм использования BSP от производителей аппаратуры. Кроме того, по мере роста проекта возникла проблема запуска открытого ПО на платформе Embox. И такой механизм с учетом особенностей встроенных систем был придуман и реализован в проекте. На докладе будет продемонстрирована работа Qt-приложений без поддержки виртуальной памяти.

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

О докладчикеАнтон Бондарев — технический руководитель проекта Embox.В трудовой деятельности является руководителем проектов в департаменте радио-электронных систем компании «Ланит-Терком», где занимается разработкой встроенных и специализированных систем в телекоммуникации, системами управления и системами обработки сигналов.Увлекается системным программированием. Как и любой программист мечтал написать свою операционную систему, что в итоге и было реализовано в проекте Embox.Регистрация Участие бесплатное. Требуется предварительная регистрация.

© Habrahabr.ru