From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Sat, 18 Mar 2006 16:28:20 +0000 From: George Michaelson To: Fans of the OS Plan 9 from Bell Labs <9fans@cse.psu.edu> Subject: Re: [9fans] ports from GPL Message-ID: <20060318162820.55b556dd@garlique> In-Reply-To: References: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Topicbox-Message-UUID: 18ab3492-ead1-11e9-9d60-3106f5b1d025 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 >