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> 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