Robert C. White Jr. (firstname.lastname@example.org)
25 Jul 87 00:48:47 GMT
This is a semi-informed retelling...
As I understand it, STREAMS is/are intelegent filter devices. As
such some of the filters can be "multiplexing". You can "open" a "stream
head" to a multiplexing STREAMS module and then connect a potentally infinite
number of other STREAMS and still only have one "open" counting against
your allowed maximum.
Since all files are STREAMS you can pass whole file descriptors
between processes through an IOCTL call [FD_GIVE and FD_RCV or somesuch].
The flexability is very interesting, and seems to allow recursive nesting
of STREAMS modules such that you decide which "layer" you wish to work
with depending what stream head you open.
i.e. Starlan support for the 3B2 [from program level] requires you use
a strange set of primitives to establish the link [they are all in a
library] but after you have the link you ay "push" a module on the
stream which makes read, write, putsg, and getmsg the [only] valid
primitives against the stream. [you can't use read etc. while you are
useing the deeper t_primitive calls] What this means is, you can open
a connection accross a/the network then "push" the module and pipe
the connection through any normal means. when the subtask/pipe exits
you pop the module off the stream and terminate the connection.
It all looks very interesting, I am watching this stuff
carefully, but I havn't been able to upgrade my OS yet so I don't know
how well it works first hand.
Disclaimer: My mind is so fragmented by random excursions into a
wilderness of abstractions and incipient ideas that the
practical purposes of the moment are often submerged in
my consciousness and I don't know what I'm doing.
[my employers certainly have no idea]
This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:38:48 GMT