Clem Cole:
It was never designed for it. dmr designed Streams to replace the
tty handler. I never understood why the Summit guys insisted on
forcing networking into it.
======
You've mistaken.
The point of the stream I/O setup with
stackable line disciplines, rather than the old single
line-discipline switch, was specifically to support networking
as well as tty processing.
...
The problem Dennis wanted to solve was that tty handling
and network protocol handling interfered with one another;
you couldn't ask the kernel to do both, because there was
only one line discipline at a time.
Hence the stackable modules.
...which
expected its own special `new tty' line discipline, so the
network code would have to know which tty driver to call.
It made more sense to stack the modules instead, so the tty
code was there only if it was needed, and different tty
drivers could exist without the network code knowing or caring.
When I arrived at the Labs in 1984, the streams code was in
use daily by most of us in 1127. The terminals on our desks
were plugged into serial ports on Datakit (like what we call
a terminal server now).
Later there was a TCP/IP that used the stream mechanism.
....
All this is very different from the socket(2) way of thinking,
and it has its vices, but it also has its virtues.