LINUX.ORG.RU

Embox 0.5.4

 ,


0

1

Состоялся релиз свободной (лицензия BSD) ОС реального времени для встраиваемых систем Embox 0.5.4. Новая версия содержит множество исправлений и улучшений, в частности:

  • улучшена файловая подсистема;
  • улучшен драйвер USB хоста для STM32;
  • переработана подсистема init;
  • начата работа по созданию API для подсистемы DMA;
  • улучшена поддержка Raspberry PI;
  • улучшена подсистема SPI;
  • улучшена поддержка библиотеки SDL2;
  • портированы ещё несколько библиотек, в том числе NPF и libpcap;
  • улучшена совместимость с Linux.

>>> Подробности

★★

Проверено: xaizek ()

Ответ на: комментарий от reprimand

Спасибо, раньше даже о таких не слышал, думал что это просто разновидность, когда не пладится много процессов. Но оказывается там передача не через STDIN STDOUT идет а через сокеты. Пока навереное только примем к сведению, просто мы стараемся делать то что имеет применение в системе, и пока вроде CGI хватало, ведь у нас можно не плодить процессы и обрабатывать достаточно быстро.

abondarev ★★ ()
Ответ на: комментарий от abondarev

Нет, это не разновидность, это немного разный подход.
Fastcgi, в отличие от CGI, не запускает каждый раз процесс. Соответственно, каждый раз выполнять всякие разные приготовления (не говоря уже о затратах на запуск самого процесса) не нужно. На самом деле, если у вас именно так ,т.е. я могу всё что нужно мне подготовить заранее, не запускать процесс, и просто в цикле отдавать данные, ожидая нового запроса, то у вас _уже_ есть якобы fastcgi. Хотя настоящего (совместимого) fastcgi очень не хватает на МК

reprimand ★★★★★ ()
Последнее исправление: reprimand (всего исправлений: 1)
Ответ на: комментарий от reprimand

Хотя настоящего (совместимого) fastcgi очень не хватает на МК Ага, но там и CGI не полноценный обычно. Просто регистрируются колбеки (сишные функции), и для того чтобы одновить данные дергается прамо рефреш всей страницы. У нас все по человечески, я уже давал ссылку. А fastcgi может добавим в будущем, если будут запросы.

abondarev ★★ ()

Выглядит очень любопытно. Спасибо за труд и за новость.

Правильно ли я понимаю, что ее можно накатить на платку с STM32 и спокойно запускать под ней программки в реальном времени так же легко как и под линуксом? Ах какое полезное изобретение!

Ну в смысле: сеть будет, фс, какой-то API для устройств (I2C, SPI, UART, GPIO, таймеры может быть?

Не нашел на гитхабе примеры под Lua. Хотя сишных достаточно, оно ведь состыкуется так же как и на линуксе?

Если оно реального времени, как делится время между процессами? Треды можно? Какие есть механизмы для взаимодействий между процессами?

pihter ★★★★ ()
Ответ на: комментарий от pihter

Выглядит очень любопытно. Спасибо за труд и за новость.

Спасибо!

Правильно ли я понимаю, что ее можно накатить на платку с STM32 и спокойно запускать под ней программки в реальном времени так же легко как и под линуксом?

В принципе да, ну конечно обычно посложнее чем на установленном Линукс, но сопоставимо. Вот например статья про добавление обычной «десктопной» библиотеки libmodbus (https://habr.com/ru/company/embox/blog/547582/), а вот например как разрабатываем на Линукс используем обычный валгринд (https://habr.com/ru/company/embox/blog/538416/) и потом запускаем на STM32.

Ну в смысле: сеть будет, фс, какой-то API для устройств (I2C, SPI, UART, GPIO, таймеры может быть?

Да, все составляющие есть причем очень сильно сосместимые с Linux. Во многих случаях достаточно делать аналог ’./configure; make; make install;", но бывает и нужно немного патчить исходники. На счет UART например, есть вариант прямо с полноченными /dev/ttySx, ну понятно сеть через обычные сокеты, а ФС через обычную стандартную библиотеку, это очень удобно, мы писали об этом в статье (https://habr.com/ru/company/embox/blog/573244/)

Не нашел на гитхабе примеры под Lua. Хотя сишных достаточно, оно ведь состыкуется так же как и на линуксе?

Про Lua (https://habr.com/ru/company/embox/blog/496146/) Есть более менее приличная дока для быстрого старта (https://github.com/embox/embox-docs/releases/download/v0.1/embox_user_manual_ru.pdf). Коротко да, с точки зрения исходников, прямо как в линукс приложениеях (main() и дальше все также) нужно добавить описание модуля, но оно не большое и есть в примерах.

Если оно реального времени, как делится время между процессами? Треды можно? Какие есть механизмы для взаимодействий между процессами?

Да, лучше всего использовать именно pthread и механизмы синхронизации из этого API. Есть еще варианты кооперативной многозадачности, если уж совсем мало времени, но это уже будет не совместимое с Линукс решение.

abondarev ★★ ()
Ответ на: комментарий от abondarev

Спасибо за подробный ответ. Я уже немного огладелся на хабре, 2-3 статьи прочитал, буду еще!

Сегодня склонил себе репозиторий, собрал по инструкции прошивку для старта на qemu и обалдел. Столько всего и на МК. Выглядит очень заманчиво, натуральный линукс без линукс и все это в пару сотен илобайт оперативки.

И еще, (я обязательно прочитаю все, до чего дотянусь, но пока не встретил) межпроцессное взаимодействие? мьютексы, шаредмем, может сигналы или пайпы, локальные сокеты? Есть вообще такое понятие как процесс? Ну в кему-примере, что я щупал, был веб сервер и какой-то интерпритатор терминала, явно же это не треды?

pihter ★★★★ ()
Ответ на: комментарий от pihter

межпроцессное взаимодействие? мьютексы, шаредмем, может сигналы или пайпы, локальные сокеты? Есть вообще такое понятие как процесс? Ну в кему-примере, что я щупал, был веб сервер и какой-то интерпритатор терминала, явно же это не треды?

Да есть понятие процессы. конечно без полноценной виртуальной памяти есть ограничения, но в принципе для разработчика это обычно не заметною Хотя об этом стоит помнить при разработке ПО. Статья по теме (https://habr.com/ru/company/embox/blog/232605/). На счет методов, да в Embox прямо перенаправляется ввод вывод и таким образом реализуются веб-серверб телнет и так далее. есть pipe, mutex, и другие методы. Есть шаред мемори, но достаточно редко используется.

abondarev ★★ ()
Ответ на: комментарий от abondarev

Вчера чуть не помер от нетерпения: знал что дома валяется какая-то stm32discovery… прибежал, глянул, оказалась VL, наверное, единственная из всей линейки у которой не хватит пороху запустить сабж.

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

В общем, уважаемый Антон, и прочие, кто в теме, посоветуйте платку (или даже две) дешевую, но с изернетом, и менее дешевую, но позволяющую лучше раскрыть возможности сабжа.

Спасибо!

pihter ★★★★ ()
Ответ на: комментарий от pihter

прибежал, глянул, оказалась VL, наверное, единственная из всей линейки у которой не хватит пороху запустить сабж.

Почему не хватает? Даже на f0 народ запускает. Правда функционала там будет не много, но.. в общем статья про правда про EFM (https://habr.com/ru/company/embox/blog/537408/). Собирать VL вот так

make confload-platform/stm32/f1/stm32vl-discovery
make

По поводу платки с ethernet есть всякие nucleo. Например nucleo-f429zi (https://www.st.com/en/evaluation-tools/nucleo-f429zi.html) там есть ethernet и даже в USB можно вставить флешку.

По поводу более продвинутой платы, лично мне нравится STM32f769i-disco (https://www.st.com/en/evaluation-tools/32f769idiscovery.html). На ней много всяких демок из коробки идет. Но в принципе добавление поддержки для новой платы STM достаточно простая задача, поэтому можно выбрать и другую плату:)

abondarev ★★ ()