Что такое хорошая шина сообщений с открытым исходным кодом для встроенного Linux? - PullRequest
6 голосов
/ 21 ноября 2008

Я ищу хорошую шину сообщений с открытым исходным кодом, подходящую для встроенных устройств Linux (Linux и uClinux).

Он должен удовлетворять следующим критериям:

  • Должно быть свободное программное обеспечение и LGPL или более либеральная лицензия, поскольку uClinux поддерживает только статические ссылки
  • Должен иметь C API
  • Должен иметь относительно небольшую площадь и не зависеть от сторонних библиотек
  • Должен быть совместим с Linux / uClinux 2.4.22 +
  • Должен быть хорошо протестирован и желательно иметь существующую тестовую среду
  • Должен иметь хорошо документированный протокол
  • Должен быть переносим на другие платформы

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

Ответы [ 4 ]

8 голосов
/ 21 ноября 2008

Там D-Bus . Он работает в пространстве пользователя. Хотя обычно для этого требуется демон (но, может быть, вы могли бы просто связать процессы друг с другом, а не проходить через центральный демон).

5 голосов
/ 21 ноября 2008

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

Если последний, то, как Карсон сказал: man mq_overview.

Если первое, то сначала обратитесь к поставщику встроенного Linux. Многие поставщики предоставляют какую-то распределенную библиотеку сообщений. В противном случае взгляните на библиотеку 0MQ или MPICH2 MPI .

Обновление: я должен также добавить, что большая часть моего прошлого года была потрачена на написание именно такого API для инфраструктуры распределенной обработки, и я могу сказать вам, что POSIX-совместимость стоит сохранить. Используйте очередь сообщений POSIX, если это вообще возможно.

1 голос
/ 23 ноября 2008

Если вы имеете в виду IPC, сокет прекрасно работает для uclinux.

1 голос
/ 21 ноября 2008

Звучит как хорошее применение для SYSV или POSIX очередей сообщений . Они могут удовлетворить все потребности, которые вы перечислили. POSIX новее, поэтому они не будут соответствовать требованиям ядра, но SYSV находится в старых ядрах.

...