Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!husc6!husc11!martillo
From: martillo@husc11.HARVARD.EDU (Yakim Martillo)
Newsgroups: comp.protocols.tcp-ip.ibmpc
Subject: Re: More questions about TLI
Message-ID: <3466@husc6.harvard.edu>
Date: Fri, 4-Dec-87 18:17:18 EST
Article-I.D.: husc6.3466
Posted: Fri Dec  4 18:17:18 1987
Date-Received: Wed, 9-Dec-87 06:52:26 EST
References: <8711181601.AA00849@janeb.wisc.edu> <305@halley.UUCP> <3415@husc6.harvard.edu> <9033@utzoo.UUCP>
Sender: news@husc6.harvard.edu
Reply-To: martillo@husc11.UUCP (Yakim Martillo)
Organization: Harvard Univ. Science Center
Lines: 33

In article <9033@utzoo.UUCP> henry@utzoo.UUCP (Henry Spencer) writes:
:: To deal with the problem of multiplexed data streams from multiplexed
:: sources, and in order to realize the client-server model the Berkeley 
:: designer implemented the socket interface.

:Unnecessarily, since all those things can be done with the old interface
:given some thought and care.  Alas, it's often tempting, not to mention
:exciting, to charge in and implement something new rather than thinking
:carefully about how it could fit in with the old way of doing things.

:Those who do not understand Unix are |  Henry Spencer @ U of Toronto Zoology
:condemned to reinvent it, poorly.    | {allegra,ihnp4,decvax,utai}!utzoo!henry

I have done this at the Labs using Sys5 it usually involved writing
a bunch of new ioctls and creating a bunch of pseudodevices.  

I don't see how this is particularly cleaner than sockets.  Maybe
somebody at the labs could ask Ritchie but I don't think the Unix
designers initially had any thought to deal with multiplexed streams
of data from multiplexed sources. If they had, Ur-Unix would have had
select() because select() is really helpful for writing network code.
In fact select() did not appear in AT&T Unix until 5V3.  I found
rendezvous between processes on two machines to be really painful
using the Sys 5 interface.

By creating streams Ritchie basically was expressing the view that
the old interface was inadequate for multiplexed data streams and
protocol stacks.

Now I think streams in Ritchies implementation are okay, I just don't
feel they lend themselves to offloading lower protocol levels to a
network front-end processor.  Sockets do somewhat better with such
hardware configurations.