SVR3.0 vs BSD4.3

Larry McVoy lm at arizona.edu
Wed Mar 23 05:02:34 AEST 1988


In article <7511 at brl-smoke.ARPA> gwyn at brl.arpa (Doug Gwyn (VLD/VMB) <gwyn>) writes:
>Unfortunately, the implementation you probably have in mind is
>tightly coupled to sockets.  Wollongong developed a STREAMS-based
>TCP/IP for AT&T; I don't know how good it is but there is no a
>priori reason that a STREAMS implementation couldn't be as good as
>one based on sockets.

It is my personal belief that streams was intended as a _slow_ terminal
"virtualization" (Padlipsky would be proud) mechanism.  As such, one 
should probably think carefully about the performance aspects of 
implementing high bandwidth drivers that use streams.  One could (I have
seen it) suggest that all drivers talk through streams interfaces.  Seems
like a nice idea (modularity being the buzzword that comes to mind) until
you start counting how many times you say "bcopy(src, dest, len)".  This
might be a moot point when we have infinitely fast CPU's and memories :-)

(It should be obvious but I'll drive it home:  the streams code that I've
seen copies the data out of the upper level buffer and then into the 
lower level buffer [assuming "downward" movement].  The copying dominates
the time spent in the streams drivers.  If streams can handle imbedded 
pointers in their data then my comments are meaningless.)
-- 

Larry McVoy	lm at arizona.edu or ...!{uwvax,sun}!arizona.edu!lm



More information about the Comp.unix.wizards mailing list