Добрый день!
Embox недавно принимал участие в IT-фестивале TechTrain.
Поток посетителей у нашего стенда был очень большим! А мы, к сожалению, не сделали раздаточные материалы с описанием нашего проекта. И некоторые ушли, не успев понять, что же у нас происходит. Нам задавали много однотипных вопросов, и мы решили опубликовать небольшую статью для того, чтобы на них ответить.
Вы производители оборудования?
На фотке можно видеть, что у нас на стенде довольно много железок, некоторые мигали, некоторые двигались, некоторые что-то рисовали. Наверное поэтому очень частыми вопросами были: “Вы производите железки?” или “Что вы продаете?” и так далее. Ответ простой: “Нет, мы не производим железки, и нет, мы не продаем, по крайней мере, сами железки”. Мы разрабатываем открытую ОС для встраиваемых систем! Все железки, которые были на стенде, работали под управлением Embox. Все макеты могли быть воспроизведены, поскольку куплены в обычных магазинах микроэлектроники (за исключением Эльбруса), а код для создания прошивок лежит у нас в репозитории (в том числе и для Эльбруса).
Состав стенда
Вкратце опишу, что у нас было на стенде.
Было две машинки. Одна — автономный робот на основе STM32F3-Discovery, который детектирует плохую поверхность. О ней мы рассказывали в статье. Другая — робот на основе stm32f4discovery, управляемый по радиоканалу. Данный робот оснащен датчиком освещенности и дальномером на основе инфракрасного датчика.
Был макет для демонстрации мультиагентных роботов на основе пяти STM32F3-Discovery, соединенных между собой по последовательным интерфейсам. Они совместно решали задачу сглаживания функции (более подробное описание выходит за рамки данной статьи).
Был макет на основе STM32F7-Discovery. На нем демонстрировался пример с маленьким графическим фреймворком Nuklear, описанным в статье.
Был макет SIP-телефона на основе stm32f4discovery. Об этом было в статье.
Был макет на основе платы sk-imx6q с LCD-дисплеем, на нем крутилась демо-сцена из Mesa3D.
Ну и да, был системный блок под названием “монокуб” на основе процессора Эльбрус, об этом было в статье.
Это что-то типа Arduino?
Как, наверное, можно догадаться из приведенного списка макетов, на другой популярный вопрос “Это ардуино?”, ответ также отрицательный. Речь даже не об оборудовании (не знаю, имеет ли смысл делать из мощного процессора imx6q ардуино), но в том, что на ардуино не удастся сделать SIP-телефон или запустить OpenGL, я уверен. Нет, не поймите меня неправильно, я ни в коем случае не хочу задеть тех, кто разрабатывает под arduino. Но платой за простоту использования являются существенные ограничения для данной платформы.
Вы делаете роботов?
Поскольку у нас было несколько роботов, нам часто задавали этот вопрос. Ответ: “Нет, мы занимаемся системным ПО. Алгоритмы управления и сами роботы, скорее, наше хобби.”
ОС для роботов?
Нет, Embox является ОС для встраиваемых систем. Это куда более широкое понятие. Роботы являются очень наглядным примером применения, поскольку в них нужно делать как вещи характерные для маленьких ОСРВ (сбор показаний от датчиков, управление моторами), так и то, что гораздо удобнее делать на больших ОС (отработку алгоритмов управления, удаленное управление ). И следовательно, на подобных задачах Embox хорошо демонстрирует свои преимущества.
Это Linux? А на чем основан Embox?
Нет, это не дистрибутив Линукса. Ядро и основные системные сервисы мы писали с нуля, естественно, заглядывая и в другие открытые проекты и, конечно, изучали того же Таненбаума.
Со временем мы добавили возможность использовать сторонние приложения из мира Linux, тот же проект PJSIP или библиотека Mesa3D. Поскольку нет никакого желания делать то же самое, но свое.
От характеристик Linux у нас есть отличия. Например, посетители выяснили, что макет с OpenGL загружается всего секунд 7, и это несмотря на то, что U-boot, который используется в качестве загрузчика, отъедает пару секунд. Ну или запихать Linux с SIP-стеком в STM32F4-Discovery, которая имеет всего 192 кБ ОЗУ, вряд ли получится. Хотя один посетитель утверждал, что слака (вероятно дистрибутив slackware ), влезает в 40 кБ. Но он, скорее всего, просто перепутал килобайты с мегабайтами.
Что же такое этот ваш Embox?
Лично я на фестивале объяснял аллегорично: “Линукс без Линукса”.
Немного раскрою тему. В Embox есть порт открытой библиотеки Qt (также демонстрировалась на стенде), OpenGL мы показывали на основе открытого проекта Mesa 3D, или, взять тот же SIP телефон, — он сделан на основе открытого проекта PJSIP. Все эти проекты прекрасно работают в Linux. Но если нужно запихнуть SIP телефон на маленькую плату, то там уже Linux не получиться использовать. Ну или какое-то оборудование где требуется отрисовка 3D. Например, карта местности с рельефом подразумевает довольно большие аппаратные ресурсы, а значит можно было бы использовать LInux. Но с другой стороны, вместе с Linux приходит еще куча ПО, а это потенциальные ошибки и дыры в безопасности. В Embox же можно собрать только необходимые для работы приложения части. А это позволяет значительно упростить прохождение различного рода сертификаций, как на корректность работы, так и по безопасности, например, отсутствие НДВ (закладок).
Можно ли пройти в Embox стажировку, поучаствовать в проекте и где вас искать?
Embox открытый проект и конечно в нем можно поучаствовать. Мы с радостью поможем в этом начинании.
Мы помним свои корни и достаточно плотно занимаемся со студентами. В проекте приличное количество курсовых и дипломов. Основная масса конечно на МатМехе СПбГУ. Но были прецеденты работ из других ВУЗ-ов. Кроме того проекте участвуют студенты и набирающиеся опыта из других городов и стран.
Репозиторий проекта находится на github
Основная (англоязычная) группа рассылки для проекта: embox-devel[at]googlegroups.com
Кроме того, мы создали русскоязычную группу рассылки: embox-ru[at]googlegroups.com
Можно также написать лично мне: anton.bondarev2310[at]gmail.com
P.S. фотки из группыTechTrain вконтакте
Автор: abondarev