On Fri, 17 Mar 2006 21:03:04 -0500
 
> I'm reasonably sure that the socket interface was Berkeley's.
> BBN was tasked by ARPA to develop the TCP/IP stack for BSD,
> but UCB's CSRG was quite resistant to incorporating the BBN
> work in favor of their own.  This was the major subject of
> several somewhat messy meetings of ARPA's BSD advisory board.
> I no longer remember what the BBN ideas were for the
> programming interface to networks; they may have contained
> the germ of the socket scheme.

As initially released in 4.2, it didn't work. You could crash the host
with a unix domain socket, and we did at leeds until they sent the
patch. Since there were no ethernet drivers yet, we had ludicrously
huge S-100 backplane crates which interfaced the ethernet as serial
protocol, and we did tip and cu between the unix host and the VMS host.

I think I can sort of relate to what they were thinking of. At one
level, a file handle is very very local. its hard to divorce yourself
from the idea its a nexus between code, the kernel and blocks on a
disk. Making a separate abstraction provided some sense it might be a
persistent object which had state either end, changing in ways which
were different to you having a file open, moving to a filepos and
writing bytes.

The tty interface being so wierd, it hurt like hell sometimes to do
file i/o over /dev/tty. you had to understand ioctl() hell to make
things work. Having a totally clean abstraction (ok, so it wasn't
totally clean, but it FELT cleaner) with an explicit -setsockopt()
looked ok.

I'm not trying to say sockets were 'right' -But that in context, if you
came from a tops-10 world, or a VMS world (mailbox I/O..) that they
were certainly no more awful than things you'd had to do, and compared
to eg /dev/tty (which WAS the network for many people) were
considerably better.

> 
> On the other hand, the --longoption convention (mod the -- vs -)
> espoused by all recent GNU stuff is a reversion to Multics
> conventions that were taken out of early Unix with its mostly 1-char
> options, and which were generally followed by BSD.

You're eliding a lot of history over the release of getopt code here. I
seem to recall about 3 different versions of this floating around, all
offering a 'new way' to specify commandline args.

Stallmans gnu manifesto emerged at around the same time. I remember
getting both the AT&T getopt and this manifesto off UUCP news at leeds
at broadly contemporay times.

-George

> 
>       Dennis
> 

Reply via email to