A/UX: Streams Defines Standard Interfaces For I/O (9/94)


What are UNIX STREAMS?

STREAMS defines standard interfaces for character I/O within the UNIX kernel and between the kernel and the user level. It consists of a set of structures, kernel facilities, system calls, and kernel utility routines. This collection can create, use, and dismantle a "Stream".

By connecting a selection of STREAMS components, a Stream is created -- a full-duplex processing and data transfer path between a driver in kernel space and a process in user space. The primary components of a Stream are a Stream head, a driver, and 0 or more added modules between the Stream head and driver. It is similar in concept to a Shell pipeline, except that data flow and processing are bidirectional.

STREAMS can best be described as a kernel mechanism that provides a uniform method of implementing network protocols and supporting different network media. It enables the development of application software that is independent of the underlying network services and data communication drivers. A change in medium or protocol can be accommodated through the substitution of STREAMS modules, without need for modification of the application software. It also enables the modular development of protocol software. Portability of software that performs network services is facilitated through the isolation of hardware dependencies in particular modules.

The development process is simplified by the ability to combine STREAMS modules to perform more sophisticated network services and to use the same modules over different media and in different network architectures. The STREAMS feature within A/UX is provided in addition to the existing device driver mechanisms.

In A/UX, the ADB (Apple DeskTop Bus) connection to the keyboard and mouse are supported by STREAMS I/O device drivers.

STREAMS is normally not available with UNIX System V.2. Through special licensing arrangements, a proper subset of the feature is available in A/UX.

For more information on STREAMS, see:

- AT&T's "UNIX System V STREAMS Primer"

- AT&T's "The STREAMS Programmer's Guide"

- AT&T's "System V Interface Definition"

- "Design of the UNIX Operating System" by Maurice Bach.


Article Change History:
19 Sep 1994 - Reviewed.
31 Aug 1992 - Reviewed.

Support Information Services
Published Date: Feb 18, 2012