2008-11-21 22 views
5

Ich suche einen guten Open-Source-Nachrichtenbus, der für Embedded-Linux-Geräte (Linux und uClinux) geeignet ist.Was ist ein guter Open Source-Nachrichtenbus für Embedded Linux?

Es muss die folgenden Kriterien erfüllen:

  • muss nur freie Software und LGPL oder eine liberalere Lizenz aufgrund uClinux statisch unterstützt die Verknüpfung
  • Muss eine C-API eine
  • Must have haben relativ kleiner Platzbedarf und nicht von Bibliotheken Dritter abhängig
  • Muss kompatibel sein mit Linux/uClinux 2.4.22+
  • Sollte gut getestet werden und vorzugsweise einen bestehenden Test Framew haben set up ork
  • ein gut dokumentiertes Protokoll haben sollte
  • Sollten auf andere Plattformen

Die Nachricht Bus tragbar sein würde von Anwendungen auf unserem System in erster Linie, um Konfigurationsparameter zu kommunizieren verwendet werden usw., so dass es doesn‘ t müssen Echtzeitanforderungen erfüllen.

Antwort

4

Es hängt alles von Ihrer Architektur ab. Möchten Sie über eine Backplane Nachrichten an andere Knoten in einem Cluster senden oder befindet sich dies alles innerhalb eines einzelnen Knotens, aber in unterschiedlichen Adressräumen?

Wenn das letztere, dann wie Carson sagte: man mq_overview.

Wenn der ehemalige, dann zuerst zu Ihrem Embedded-Linux-Anbieter. Viele Anbieter stellen eine Art verteilter Messaging-Bibliothek zur Verfügung. Sollte dies nicht der Fall sein, sehen Sie sich die 0MQ oder die MPICH2 MPI Bibliothek an.

Update: Ich sollte auch hinzufügen, dass viel von meinem letzten Jahr verbrachte Schreiben nur eine solche API für eine verteilte Verarbeitung Framework, und ich kann Ihnen sagen, dass POSIX-Kompatibilität ist es wert, zu halten. Verwenden Sie nach Möglichkeit die POSIX-Nachrichtenwarteschlange.

1

Das klingt nach einer guten Verwendung für SYSV or POSIX message queues. Sie können alle Bedürfnisse erfüllen, die Sie aufgelistet haben. POSIX sind neuer, daher entsprechen sie nicht den Kernel-Anforderungen, SYSV befindet sich jedoch in den älteren Kernel.

+0

Laut seiner man-Seite ist es nur in Linux 2.6.6+ verfügbar. "POSIX-Nachrichtenwarteschlangen wurden seit Kernel 2.6.6 unter Linux unterstützt." –

+1

Sie haben Recht. Wahrscheinlich möchten Sie SYSV-Warteschlangen verwenden, die vor POSIX unterstützt wurden. – carson

7

Es gibt D-Bus. Es läuft im Benutzerbereich. In der Regel erfordert es jedoch einen Daemon (aber vielleicht könnten Sie nur Prozesse speziell miteinander verbinden, anstatt den zentralen Daemon zu durchlaufen).

1

Wenn Sie IPC meinen, funktioniert Socket gut für uclinux.