Was looking into pipes.
For the 3rd Edition TUHS does not have source, but is does have a man page. In V3, pipe
returns a single file descriptor that echoes whatever is written back upon reading. The
pipe buffer capacity is 504 bytes.
The surviving ‘nsys’ source for V4 does not yet include the source for pipes, but the man
page for 4th edition pipes has - more or less - the well known semantics, including the
4096 byte buffer capacity.
Does anyone remember:
- why the single fd approach was abandoned? To its credit, it appears to allow for limited
2-way communication. Maybe the reason was that it becomes harder to detect broken pipes?
- whether the V3 implementation was based on an in-memory approach and not the later
'anonymous backing file’? The 504 byte buffer capacity suggests a single buffer page
minus some header info.