We are relatively new to the LINUX/RTLinux business, but have had a number
of years experience with the QNX realtime OS.

Like all people who have used a programming paradigm and toolset long
enough, you want the same toolset everywhere you go.

With that in mind, we have made a crude stab at providing LINUX/RTLinux
with the basics of the QNX style synchronous message passing in the form of
a static library.  

In our scheme the "sender" owns a block of shared memory.  The "receiver"
listens on a fifo for a single integer.  This integer represents the index
of the "senders" record in a memory mapped file table.  The "receiver"
connects to the "senders" shared memory retrieves the message and posts
it's reply to the same location.  The "sender" listens to it's reply fifo
and unblocks and retrieves it's reply.  Presto we have fully synchronous
QNX style message passing.

We have already used this on a number of projects with great success.
Recently we have built a Tcl extension which exposes Send/Receive/Reply
commands to our Tcl/Tk scripts as well.

We are ready to share this source code with the open source community in
hopes that others can benefit from the paradigm.   We are also hoping that
others with more "kernel hacking" experience can collect our ideas in the
form of a kernel module and dispense with the fifos and memory mapped files
that are currently used.  We would like to see a solution which is more
closely tied with RTLinux.

Inspite of the "first cut" solution we are seeing benchmarks of 250us for a
1k message to make its  way between two LINUX processes and back again on a
P166.  This is within an order of magnitude of what QNX would do on the
same machine.

If anyone has an interest, don't hesitate to contact us and I'll email you
the gzip'd tar file (~20k).

--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/

Reply via email to