Clem, you are correct. mknod() was used in the /usr/group standard in 1984.
mkfifo() and mkdir() were part of the IEEE Trial Use Standard in 1986,
as well
as the adopted IEEE Std 1003.1-1988 (POSIX) standard.
Heinz
On 3/6/2020 1:10 PM, Clem Cole wrote:
BTW: My memory is that Joy did not like them for some
reason,
probably because they were not as sexy as some of the stuff Accent
could do (but that's a guess -- I've forgotten). So with 4.2, Joy
created Unix domain sockets.
BTW: a slow cache refresh is occurring in my brain ... I remember one
of the things that there was a lot of arguing/moaning about at the
time was the directionality of such a feature. Bruce's hack from the
mid-70s was unidirectional and you needed two pipes to go both ways.
On Fri, Mar 6, 2020 at 4:06 PM Clem Cole <clemc(a)ccc.com
<mailto:clemc@ccc.com>> wrote:
The first version was from Rand (called "Rand Pipes"). They
certainly were available in the mid-70s on Sixth Edition, you have
to ask someone like Bruce Borden if they were on Fifth. I think
the code is on one of the 'USENIX' tapes in Warren's archives.
At this point in time, someone would need to refresh my memory of
the details of Rand's implementation compared to what came in the
USG systems in the 1980s. For instance, I believe the early
versions used mknod(2) to create the "named entity." IIRC early
USG did that too, and mkfifo(3) came as part of the POSIX (I have
memories of the discussion at a POSIX meeting, but as I say, I've
forgotten the details).
IIRC there were differences in buffering behavior, flushing, error
path between USG's later versions and the original Rand, but I'd
have to stare at the code again to remember.
On Fri, Mar 6, 2020 at 3:42 PM Paul Ruizendaal <pnr(a)planet.nl
<mailto:pnr@planet.nl>> wrote:
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