A stream is a full-duplex processing and data transfer path between a driver in kernel space and a process in user space.
Modules are optional.
The internal software driver is commonly called a pseudo-device driver. The associated mechanism is simple and open-ended. It consists of a set of system calls, kernel resources, and kernel utility routines. Messages that are passed from the stream head toward the driver are said to travel downstream while messages passed in the other direction travel upstream . Downstream messages arriving at the stream head are processed by the stream head, and data is copied from user buffers.