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