John, thanks for the reminder of the implementation
of pipes on a constrained version of UNIX in the early
days. The exact implementation is described on page 2095
of the BSTJ July-Aug 1978 for interested parties.
Heinz
On 12/5/2024 8:00 AM, John R Levine
wrote:
On Thu,
5 Dec 2024, Dan Cross wrote:
Pipes were invented at least three times
I'm aware of, but what made them
work so well in Unix is that they looked to the program the
same as a file
so any program could use them for input or output without
special arrangements,
and the shell made it easy to start two programs and pipe them
together.
Once you have coroutines and queues for passing data between
them, a
lot of things start to look like pipes.
They also can look a lot like temporary files. Someone, probably
Heinz, did a shell for the tiny Unix that ran on floppies so this
foo | bar
actually did this
foo > tmpfile ; bar < tmpfile; rm tmpfile
to avoid having to swap programs in and out on floppies. The main
disadvantage was that the tmpfile could overflow the tiny disks of
the time.
They were invented again at IBM in the
1970s and described in this paper. I wrote
them a letter, which they published, saying that Unix pipes
did the same thing.
https://dl.acm.org/doi/10.1147/sj.174.0383
Don't forget CMS pipelines, too!
Sadly, the Morrison paper cited above is not easily accessible,
though
If anyone else needs a copy, just ask.
Regards,
John Levine, johnl@taugh.com, Taughannock Networks, Trumansburg NY
Please consider the environment before reading this e-mail.
https://jl.ly