How is the implementation of pipes in a OS I understand that a pipe is a form of IPC where a process creates a link to communicate with some other process (a child maybe), taking each one a end of the pipe. File descriptors are created for read and write and they can use it in half-duplex or full-duplex. My question is if the implementation of this schema is something like shared memory or message passing.
Like message passing.  The kernel allocates a private buffer for storing the data that has been sent and is waiting to be delivered to the recipient.

For more details, see:


http://www.slideshare.net/divyekapoor/linux-kernel-implementation-of-pipes-and-fifos
http://linux.omnipotent.net/article.php?article_id=12504&amp;page=-1


In the future, please do more research before asking.  We expect you to do some serious research before asking.  The links above showed up in the first few responses to my first Google search, which is a hint that you should have done more research on your own.