Path: utzoo!attcan!uunet!wuarchive!mailrus!ncar!ames!dftsrv!mimsy!chris
From: chris@mimsy.UUCP (Chris Torek)
Newsgroups: comp.unix.questions
Subject: Re: Streams vs what?
Message-ID: <19912@mimsy.UUCP>
Date: 1 Oct 89 06:13:05 GMT
References: <2515@auspex.auspex.com>
Organization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742
Lines: 33

In article <2515@auspex.auspex.com> guy@auspex.auspex.com (Guy Harris) writes:
[description of changes to socket interface, relayed from Keith Sklower]
>It certainly didn't involve adding any new system calls.

Well, no and yes.  (heads up seanf :-) )  In fact several `new' syscalls
were added, namely `accept', `bind', `connect', `sendmsg', and `recvmsg'.

What?  You say these already existed?  That is where the `no' part comes
in:  The old versions of the system calls were retained for backwards
compatibility; old binaries continue to run.  The compatibility interface
is slated to vanish in the next BSD (i.e., the one after the forthcoming
release).

I will admit that the basic design of Streams (in which data are passed
back and forth between kernel modules using a uniform interface) is
more elegant than the socket system call interface.  However, the tasks
put upon OSI or TCP streams are just as twisted as those put upon
sockets, and the interface to those tasks is again just as twisted.
The fact is that inter-network communication is ugly, and no one has,
as yet, found the `right' way to make it clean (in the way that
`devices and program-to-program streams [pipes] are files' did for
Unix).  All the problems of connection startup (rendezvous), bit and
byte order and data incompatibility, and protocol goo show through, no
matter whose implementation one uses.  RPC libraries hide the goo
well, but are language (and sometimes even compiler) specific, and
have been inefficient (this concern is, as ever, vanishing under the
tide of hardware improvement and compiler cleverness).

Anyway, BSD may yet get streams, but only the kernel hackers will
really notice.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163)
Domain:	chris@cs.umd.edu	Path:	uunet!mimsy!chris