Information about writing STREAMS drivers and applications is available
from other sites on the Internet. The following links may prove useful.
Keep in mind that these links are to Unix documentation. Therefore, these
documents cover many more kernel routines and services than appear in
LiS.
|
Link |
Description |
|
Amazon.com |
This link goes to Amazon.com. Search for the string "Unix
streams". From there you can order a hard copy of the official
Unix System V Release 4: Programmer's Guide: Streams. This
is the reference for LiS STREAMS.
|
|
Open Group |
You will need to register (free) to view the documentation. This
is official SVR4 documentation. It only covers user level, not driver
level interfaces. Once you have registered, do a search on "STREAMS".
There is also a DLPI specification available there.
|
|
Sun Solaris
Documentation |
Documentation on Sun style STREAMS drivers. Very close to SVR4.
Ignore information about multi-threaded drivers. The man pages for
section 9 are especially helpful.
|
|
UnixWare 7 Documentation |
Start by scrolling the left panel down to "Hardware and Driver
Development". Man page lookups work well, also. Ignore information
about multi-threaded drivers and execution context.
|
|
UnixWare 2 Documentation |
Look for "SCO UnixWare Application Server Release 2"
and then select man page section "3D". UW7 docs are easier
to browse.
|
|
Linux
Journal |
Linux Journal #61, May 1999, LiS: Linux STREAMS by
Fransisco Ballesteros, Denis Froschauer, David Grothe and Graham
Wheeler. Not available online. Gives an overview of Linux STREAMS.
|
|
Gcom web site |
LiS documentation is available online and can be searched using
the search engine on the home page. A white
paper on the history of STREAMS is also available.
|
|
Demultiplexed
Architectures: A Solution for Efficient STREAMS Based Communication
Stacks (1997) |
Abstract: : This paper analyzes the efficiency of various high
performance implementation techniques for the communication system
of UNIX workstations. Using an Open System implies that a certain
compatibility level is required from the protocol, user interface,
and implementation framework. These constraints limit the opportunities
to design a high performance communication system. We have designed
an experimental platform around the TCP/IP protocol suite, using
the STREAMS environment. A BSD TCP/IP stack and a classic STREAMS
based TCP/IP stack serve as reference implementations for performance
comparisons. We explain why the efficiency of some high performance
implementation techniques we applied...
|
|
Approaches
to Improving Performance of STREAMS-Based Protocol Stacks |
New approaches to improved efficiency in STREAMS based protocol
stacks. Document in PDF format.
|
|
The
Performance of Alternative Threading Architectures for Parallel Communication
Subsystems |
Threading architectures for protocol stacks. Document in PDF format.
|
|
Multiprocessor
Streams for Plan 9 (1993) |
Abstract: This paper describes an implementation of Streams for
the Plan 9 kernel, a multithreaded, multiprocessor kernel with a
system call interface reminiscent of UNIX. Rather than port Dennis
Ritchie's Streams to Plan 9, we changed the abstraction to fit more
naturally into the new environment. The result is a mechanism that
has similar performance and is internally easier to program.
|
|
Integrated
Layer Processing Can Be Hazardous to Your Performance (1996) |
Abstract: Integrated Layer Processing (ILP) has been presented
as an implementation technique to improve communication protocol
performance by reducing the number of memory references. Previous
research has however not pointed out that in some circumstances
ILP can significantly increase the number of memory references,
resulting in lower communication throughput. We explore the performance
effects of applying ILP to data manipulation functions with varying
characteristics. The functions are generated from a set of parameters
including input and output block size, state size and number of
instructions. We present experimental data for varying function
state sizes, number of integrated functions and instruction counts.
|