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. The stream head provides an interface between the stream and an application program.
Messages are the only means of transferring data and communicating within a stream.
Each message includes a specified message type indicator that identifies the contents. Modules A module performs intermediate transformations on messages passing between the stream head and the driver. A pair of such structures is required to implement the bidirectional and symmetrical attributes of a stream. Messages and data can be shared only if the developer specifically programs the module functions to perform the sharing. An optional service procedure for sharing the message processing with the put procedure can also be incorporated.