Date: Mon, 8 Sep 1997 20:41:22 -0400 (EDT) From: Ken Wong <wong@a17b32.rogerswave.ca> To: "Kevin P. Neal" <kpneal@pobox.com> Cc: Terry Lambert <terry@lambert.olg>, freebsd-hackers@FreeBSD.ORG Subject: Re: Divert sockets.. Message-ID: <Pine.BSF.3.91.970908202909.399A-100000@wong.rogerswave.ca> In-Reply-To: <1.5.4.32.19970907223328.008be880@mail.mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 7 Sep 1997, Kevin P. Neal wrote: > Well, the Amiga OS had a system for message transferral. You would set > up a message port. Do stuff. Then when you have nothing to do you sleep, > waiting on a signal. > > When you get a signal (because you got a message at one of your message > ports) then you wake up and check the message. > > The GUI notified you of events via just this messaging scheme. ARexx > programs could direct you to do stuff through another message port. This was > so common that most programs main loop's were just a simple > > Wait() > > Get Message() > > Copy Data Out of message > > Reply Message() > > Do Stuff() > > Loop back to Wait(). > > The File Notification scheme (useful for Terry's file browser) may have used > this messaging scheme as well (I honestly don't remember). You certainly > could be notified of disk change events (floppy insert/removal, later > removable HD change) through messages. > > Now, here's the question: How difficult would it be to do something like this? > It would take some sort of shared memory or other scheme to get the data from > one program to another. Or would that be too general? How about just a scheme > to get messages to and from the kernel? I have a kernel patch do just that. actually, it applys to alot of OS; QNX, Tandem Non-Stop Kernel, Minix. I don't know how if possible to include/commit it in the kernel tree. anyhow, If you are interested, I can send you the files. it is basically can do the following: prog A: main() { while(1) { pid = receive(pid-mask, buf); // blocked ... reply(pid, buf); } } prog B: main() { send(pid, buf); // blocked }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.91.970908202909.399A-100000>