The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* Re: [TUHS] First appearance of named pipes
@ 2020-03-06 22:44 Noel Chiappa
  2020-03-07 12:17 ` Paul Ruizendaal
  2020-03-09 23:22 ` [TUHS] First appearance of named pipes Grant Taylor via TUHS
  0 siblings, 2 replies; 43+ messages in thread
From: Noel Chiappa @ 2020-03-06 22:44 UTC (permalink / raw)
  To: tuhs; +Cc: jnc

    > From: Paul Ruizendaal

    > The paper is from late 1981. ... When did FIFO's become a
    > standard Unix feature?

Err, V4? :-) At least, that's when pipes arrived (I think - we don't have V4
sources, but there are indications that's when they appeared), and a pipe is a
FIFO. RAND ports just allowed (effectively) a pipe to have a name in the file
system.

The implementation of both is pretty straight-forward. A pipe is just a file
which has a maximum length, after which the writer is blocked. A port is
just a pipe (it uses the pipe code) whose inode appears in the file system.

    > From: Clem Cole

    > I think the code is on one of the 'USENIX' tapes in Warren's archives.

Doc is here:

  https://minnie.tuhs.org//cgi-bin/utree.pl?file=BBN-V6/doc/ipc

and sources for all that are here:

 https://minnie.tuhs.org//cgi-bin/utree.pl?file=BBN-V6/dmr
 https://minnie.tuhs.org//cgi-bin/utree.pl?file=BBN-V6/ken

(port.c is in 'dmr', not 'ken'where it should be).

	Noel

^ permalink raw reply	[flat|nested] 43+ messages in thread
* [TUHS] First appearance of named pipes
@ 2020-03-08 21:42 Paul Ruizendaal
  2020-03-08 22:04 ` Jon Steinhart
  0 siblings, 1 reply; 43+ messages in thread
From: Paul Ruizendaal @ 2020-03-08 21:42 UTC (permalink / raw)
  To: TUHS main list

> Always bemused me that to get a named local I/O connection one ended up with "Unix domain (what does that even mean?) sockets" rather than named pipes, especially since sockets are about as natural a Unix concept as lawn mowers. I've been told, but haven't confirmed, that early sockets didn't even support read and write. They still don't support open and close, and never will.

My interest in Unix networking 1975-1985 originally came from wondering how we came up with this alien feeling socket API as the dominant model. The original ideas for this API are in the recently found CSRG tech reports #4 and #3 - which I hope to discuss on this list in Spring.

I think we have to distinguish the API and the underlying paradigms.

When it comes to the “Arpa” lineage of Unix networking, the original API model was fully within the open-read-write-close framework. See for instance RFC681 and this document: https://minnie.tuhs.org/cgi-bin/utree.pl?file=BBN-Vax-TCP/doc/net.5.P; the entire BBN network API model fits on a few pages of ‘man’ text.

In 1975 Arpa Unix, the network name space was integrated with the file name space, by creating a character special file for each network host. This was possible because at that time an Arpa network address was 8 bits, and this fitted in the minor number; when Arpa addresses were expanded to 24 bits soon after this approach was abandoned (but one could think of a mechanism akin to symbolic links that could have continued the practice). One could have an entry for the local host, e.g. “/n/local” or something like that.

In my mind, “socket” does not only refer to the sockets API, but also to the concept of a bi-directional, possibly remote, named pipe; ‘named' as in “discoverable by a possibly unrelated process”, i.e. the in file name space, the network name space if different, etc. [aside: I realise (now) that this is a confusing use of the word socket, but I don’t have a better phrase at hand.] In my opinion, it is this concept that has proven strong and durable, much more so than the socket API itself.

When viewed in this definition a ‘fifo’ is a limited form of socket: it is unidirectional, local only (although in the 1981 S/F-Unix it wasn’t) and a server process cannot easily distinguish or delegate individual client connections. The Rand Port was better in the sense that it prefixed each client’s data with a header block.

> Networks are not intrinsically more special than any other I/O peripheral, but they have become gilded unicorns mounted on rotating hovercrafts compared to the I/O devices Unix supported before them. -rob

"Networks are not intrinsically more special than any other I/O peripheral”: that indeed is the paradigm that underlies Spider-Datakit-streams-STREAMS-Plan9, networks are just an I/O peripheral. There is nothing wrong with that paradigm, excellent systems can be built on top of it.

The other paradigm is that the network is a (mostly hidden) substrate that carries bidirectional pipes between processes. It would seem to me that there is nothing wrong with that paradigm either and it can be implemented in a “natural Unix” way as well.

> On Sun, Mar 8, 2020 at 3:48 AM Derek Fawcus <dfawcus+lists-tuhs at employees.org> wrote:
> 
>> > On Sat, Mar 07, 2020 at 01:17:09PM +0100, Paul Ruizendaal wrote: 
>> > > 
>> > > Interestingly, Luderer also refers to a 1978 paper by Steve Holmgren (one of the Arpa Unix authors), suggesting ’sockets’ (in today’s parlance) for interproces communication. 
>> >
>> > Could that simply be bleed over of terminology from the ARPAnet / Internet 
>> > usage, in that "socket" is used to refer to protocol end points?

I meant ’socket’ in the sense that I described above.

“Socket” must be one of the most overloaded words in networking. My understanding is that on the Arpanet the “socket number” was what we now would call a "port number”, although I think it was initially meant to identify a user on a host, rather than a service on a host. In the 1980 BBN TCP implementation “socket” is used to mean “ip address”. A year later, Bill Joy uses “socket” as an API call name.

>> >
>> > i.e. see these from 1970: 
>> >
>> >  https://tools.ietf.org/html/rfc54
>> >  https://tools.ietf.org/html/rfc55
>> >  https://tools.ietf.org/html/rfc60
>> >
>> > DF

^ permalink raw reply	[flat|nested] 43+ messages in thread
* [TUHS] First appearance of named pipes
@ 2020-03-06 20:41 Paul Ruizendaal
  2020-03-06 21:06 ` Clem Cole
  0 siblings, 1 reply; 43+ messages in thread
From: Paul Ruizendaal @ 2020-03-06 20:41 UTC (permalink / raw)
  To: TUHS main list

The Luderer paper on distributed Unix has the following paragraph:

"A new special UNIX interprocess communication mechanism is the fifo, which provides communication between unrelated processes by associating a new special file type with a file name. Since remote fifos are legal, they can be used for interprocessor communication between S-UNIX machines or between an S-UNIX machine and an F-UNIX machine.”

The paper is from late 1981. Maybe I’m especially mud-eyed today, but I cannot see FIFO’s implemented in V7..V8 or 4.1xBSD. When did FIFO’s become a standard Unix feature?

Paul


^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2020-03-28 16:04 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-06 22:44 [TUHS] First appearance of named pipes Noel Chiappa
2020-03-07 12:17 ` Paul Ruizendaal
2020-03-07 13:29   ` Clem Cole
2020-03-07 16:39   ` Derek Fawcus
2020-03-08  2:36     ` Rob Pike
2020-03-08  2:47       ` Larry McVoy
2020-03-08 13:07         ` Ralph Corderoy
2020-03-08 13:25           ` arnold
2020-03-08  3:06       ` Dave Horsfall
2020-03-08  7:16       ` arnold
2020-03-08 15:13       ` [TUHS] sockets (was Re: First appearance of named pipes) Derek Fawcus
2020-03-09 23:22         ` Grant Taylor via TUHS
2020-03-09 23:44           ` Larry McVoy
2020-03-23  8:49           ` Peter Pentchev
2020-03-24  9:47             ` Derek Fawcus
2020-03-25 23:25               ` Grant Taylor via TUHS
2020-03-25 23:47                 ` Richard Salz
2020-03-26  0:11                   ` Grant Taylor via TUHS
2020-03-26  0:18                     ` Richard Salz
2020-03-26  1:08                       ` Grant Taylor via TUHS
2020-03-26  2:38                         ` Dave Horsfall
2020-03-26  3:08                           ` Rob Pike
2020-03-26  3:43                             ` George Michaelson
2020-03-26  4:11                           ` Grant Taylor via TUHS
2020-03-28 11:12                           ` Peter Pentchev
2020-03-28 11:14                             ` Peter Pentchev
2020-03-28 16:03                               ` Steffen Nurpmeso
2020-03-26  1:20                       ` Tony Finch
2020-03-27 10:51                   ` Derek Fawcus
2020-03-09 23:22 ` [TUHS] First appearance of named pipes Grant Taylor via TUHS
2020-03-10  7:29   ` arnold
2020-03-11  2:47     ` Grant Taylor via TUHS
2020-03-11  7:02       ` arnold
2020-03-10 13:49   ` Chet Ramey
2020-03-10 20:26     ` Dave Horsfall
2020-03-10 20:37       ` Chet Ramey
2020-03-11  2:51       ` Grant Taylor via TUHS
  -- strict thread matches above, loose matches on Subject: below --
2020-03-08 21:42 Paul Ruizendaal
2020-03-08 22:04 ` Jon Steinhart
2020-03-06 20:41 Paul Ruizendaal
2020-03-06 21:06 ` Clem Cole
2020-03-06 21:10   ` Clem Cole
2020-03-07  5:08     ` Heinz Lycklama

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).