Data Stream Linkage and the UNIX System

To the Editor: In J. P. Morrison's excellent paper " Data Stream Linkage Mechanism , " ' it is surprising that he makes no reference to a widely used system that embodies many of the ideas he discusses-that is, the UNIX time-sharing ~ y s t e m. " ~ This system, which runs on a variety of computers, allows users to quickly and easily connect programs together by typing simple commands. As Morrison predicts , this makes programming easier and faster, and it also allows existing programs to be hooked together in new ways to solve new problems. In the UNIX environment, every program that is run has a standard output file and a standard input file. Unless otherwise specified , these files are directed to the user's terminal so that the output from a command is normally presented to the user, and input is read from the terminal keyboard. The input and output can be diverted to disk files, devices such as printers and tapes, or, most important, to other programs. Some examples may clarify this: The command Is lists the names of the user's files at the terminal, and 1s >file.names puts the names into the filefile.names. (The character > means to direct output to a file.) There is a formatting program called p r that adds titles to its input file, optionally puts the file into a multicolumn format, and puts the result on its standard output. The command line Is I pr-2-h " My files " prints the file names in two columns with a header, and 1s I pr-2-h " My files " >names.out puts the same text into the file names.out. A program that performs such a stream operation is called a j f-fer. Given the existence of a filter fpr, which sends its input to the high-speed printer spooler, then

[1]  Ken Thompson,et al.  The UNIX time-sharing system , 1974, CACM.

[2]  J. Paul Morrison,et al.  Data Stream Linkage Mechanism , 1978, IBM Syst. J..