Streams Loop-Around driver...

gwyn at brl-smoke.UUCP gwyn at brl-smoke.UUCP
Sat Jan 24 09:33:20 AEST 1987


In article <1342 at cadovax.UUCP> mitchell at cadovax.UUCP (Mitchell Lerner) writes:
>Is the Loop-Around driver as shown in the the System V version 3 Streams 
>Programmers Guide in chapter 12 a way that I can do inter-process 
>communication?  I'm not sure that you can actualy open the driver from streams 
>on two separate processes (or more?) and have the driver connect the two 
>streams.  Can I use this type of Streams driver as the basis for an inter-
>process communications facility?

This is a reasonable idea.  What I think you really need is for pipes
to be implemented as (full-duplex) streams, the way Dennis had them in
Eighth Edition UNIX.  He also had an ioctl for passing stream file
descriptors (over such a pipe) to other processes; it does appear that
SVR3.0 picked up this latter feature (in a different way; boy is their
STREAMS implementation more elaborate than Dennis's!) but so far as I
can determine solely by looking at the documentation, SVR3.0 does not
have much of the character I/O system converted to STREAMS; in
particular pipes seem to still be ripped-off disk inodes.  (Dennis
re-implemented FIFOs as streams on his Cray SVR2 after putting in his
version of streams, and the result was smaller and cleaner than the
original SVR2 FIFOs.)  I have the impression that SVR4.0 will at least
have the terminal handler converted to STREAMS (this seems to imply
that the M_DELIM control packets are being put back in), which is
important since it allows much of the host terminal I/O processing to
be moved out into intelligent controllers, or even into a smart
terminal such as a Blit, in a very clean way.  Whether or not pipes
and FIFOs will ever be assimilated into STREAMS I do not know, but I
sure hope they are.  Then you would have a really slick way to do what
you seem to be after (stream splicing).



More information about the Comp.unix.questions mailing list