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.