一个好的开源消息总线适用于嵌入式Linux是什么?

6
我正在寻找一款适用于嵌入式Linux设备(Linux和uClinux)的优秀开源消息总线。
它需要满足以下标准:
- 必须是自由软件,且采用LGPL或更自由的许可证,因为uClinux只支持静态链接。 - 必须具有C API。 - 必须具有相对较小的占用空间,并且不依赖第三方库。 - 必须与Linux/uClinux 2.4.22+兼容。 - 应经过充分测试,并最好已设置现有的测试框架。 - 应具有良好的文档协议。 - 应能在其他平台上移植使用。
该消息总线主要将被我们系统中的应用程序用于通信配置参数等,因此不需要满足实时需求。
4个回答

8

有一个叫做D-Bus的东西。它运行在用户空间。通常需要一个守护进程(但也许你可以直接让进程彼此连接而不是通过中央守护进程)。


5
这完全取决于您的架构。您是否打算通过后平面消息传递到群集中的其他节点,还是所有内容都在单个节点中但在不同的地址空间中?
如果是后者,则像carson所说:man mq_overview
如果是前者,则首先查看嵌入式Linux供应商。许多供应商将提供某种分布式消息传递库。如果失败,请查看0MQMPICH2 MPI库。
更新:我还应该补充一点,即我去年大部分时间都在为分布式处理框架编写此类API,并且我可以告诉您,保留POSIX兼容性非常重要。尽可能使用POSIX消息队列。

1

这听起来像是一个很好的使用SYSV或POSIX消息队列。它们可以满足您列出的所有需求。POSIX更新,因此不会匹配内核要求,但SYSV在旧内核中。


根据其man手册,它仅在Linux 2.6.6+中可用。“自内核2.6.6以来,在Linux上已支持POSIX消息队列。” - David Holm
1
你是正确的。你可能实际上想要使用在 POSIX 之前支持的 SYSV 队列。 - carson

1

如果您指的是IPC,socket在uclinux上运行良好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接