He estado jugando con colas de mensajes (System V, pero POSIX debería estar bien también) en Linux recientemente y parecen perfectas para mi aplicación, pero después de leer The Art of Unix Programming no estoy seguro de si realmente son un buena elección.¿Las colas de mensajes están obsoletas en Linux?
http://www.faqs.org/docs/artu/ch07s02.html#id2922148
La capa superior paso de mensajes de System V IPC ha caído en gran parte fuera de uso. La capa inferior, que consiste en memoria compartida y semáforos, todavía tiene aplicaciones significativas bajo circunstancias en las que se necesita hacer un bloqueo de exclusión mutua y compartir datos globales entre procesos que se ejecutan en la misma máquina. Estas instalaciones de memoria compartida de System V se convirtieron en la API de memoria compartida POSIX, compatibles con Linux, BSD, MacOS X y Windows, pero no con MacOS clásicos.
http://www.faqs.org/docs/artu/ch07s03.html#id2923376
Las instalaciones System V IPC están presentes en Linux y otros Unix modernos. Sin embargo, como son una característica heredada, no se ejercitan con mucha frecuencia. Todavía se sabe que la versión de Linux tiene errores a partir de mediados de 2003. A nadie parece importarle lo suficiente como para solucionarlos.
son las colas de mensajes System V aún con errores en las versiones más recientes de Linux? No estoy seguro si el autor quiere decir que las colas de mensajes POSIX deberían estar bien?
Parece que los sockets son el IPC preferido para casi cualquier cosa (?), Pero no veo cómo sería muy simple implementar colas de mensajes con sockets o algo más. ¿O estoy pensando demasiado complejo?
No sé si es relevante que esté trabajando con Linux incorporado?
7 años después ... espero que no sea demasiado para ser todavía algo relevante: me pregunto acerca de la configuración predeterminada de las colas de mensajes en 'Ubuntu 14.04',' linux 3.13', a saber 'cat/proc/sys/fs/mqueue/msg_max' lista 10 (mensajes en una cola) y'/proc/sys/fs/mqueue/msgsize_max' es 8192 (bytes) - son extrañamente pequeños. ¿Hay alguna razón estricta para estos valores predeterminados o simplemente son viejos? (El 'hombre mq_overview' dice que el límite estricto en msg_max es aproximadamente 32768, que es bastante alto.) No me refiero a crear una cola infinita tipo secuencia, pero está 100-1000 en' msg_max' ¿está bien? – xealits