linux pipes
In Linux, a pipe is implemented using two filedata structures which both point at the same temporary VFS inode which itself points at a physical page within memory.
Figure shows that each file data structure contains pointers to different file operation routine vectors; one for writing to the pipe, the other for reading from the pipe.