The real explanation for all the dead IPC facilities in old AT&T
Unixes was politics. The Unix Support Group was headed by a low-level
manager, while some projects that used Unix were headed by vice
presidents. They had ways to make irresistible requests, and would
not brook the objection that most IPC mechanisms are
interchangeable.
An interesting feature of both streams and
STREAMS[76] is that it is possible to push
protocol-translation modules into the kernel's processing path, so
that the device the user process ‘sees’ through the
full-duplex channel is actually filtered. This capability could be
used, for example, to implement a line-editing protocol for a terminal
device. Or one could implement protocols such as IP or TCP without
wiring them directly into the kernel.
Streams originated as an attempt to clean up a messy feature of the
kernel called ‘line disciplines’ — alternative modes
of processing character streams coming from serial terminals and early
local-area networks. But as serial terminals faded from view,
Ethernet LANs became ubiquitous, and TCP/IP drove out other protocol
stacks and migrated into Unix kernels, the extra flexibility provided
by STREAMS had less and less utility. In 2003, System V
Unix still
supports STREAMS, as do some System V/BSD hybrids such as Digital Unix and
Sun Microsystems' Solaris.