Mentat Products
Mentat Products
Mentat Portable Streams

Overview

Mentat Portable Streams™ (MPS®) is the leading portable implementation of the industry standard STREAMS infrastructure. MPS is a source code product designed for high performance and easy porting to any operating environment.

The STREAMS component architecture, originally introduced as part of AT&T System V UNIX, provides a mechanism for networking protocols, terminal subsystems, and other kernel-level I/O facilities to be implemented as mix-and-match kernel modules. STREAMS allows these components to be easily configured and modified independently of each other.

The cross-platform support of the STREAMS architecture offers a convenient interface for the development of portable and maintainable software and has allowed STREAMS to become the industry standard for kernel-level networking software. STREAMS modules and drivers can be easily ported between mainframe, server, workstation, desktop, embedded, and real-time operating systems. STREAMS-based transport protocols including TCP/IP, XTP, IPX/SPX, AppleTalk, XNS, SNA, and OSI, and link-layer protocols including PPP, ATM, X.25, Frame Relay, and ISDN are all available from a wide variety of third-party vendors.

Home
MPS is Mentat's implementation of STREAMS, offering unmatched performance, innovative multiprocessor support, easy portability, and full SVR4 compatibility. Combined with Mentat's reputation for high quality software and responsive support, MPS is the leading portable implementation of STREAMS. MPS is the native STREAMS on Apple Mac OS, Novell NetWare, Wind River VxWorks,Hewlett-Packard HP-UX, IBM AIX, Digital UNIX, and other many leading computer and embedded operating systems.

MPS Features

SVR4 Compatibility.
Mentat Portable Streams is a complete, fully conformant implementation of industry standard UNIX System V, Release 4 (SVR4) STREAMS. Customer-supplied SVR4 compatible modules and drivers function without change on MPS.
SVR4 Streams Replacement
For a performance boost on SVR4 UNIX systems, MPS can completely replace the native STREAMS while continuing to support terminal drivers and other native modules.
Multiprocessor Support
MPS provides an elegant synchronization model for all MP and preemptive kernel environments. In MPS the STREAMS framework handles all synchronization, freeing the module writer from concern about reentrancy and multi-threading issues.
Design Optimizations
MPS is optimized for performance, with quick passage through the most commonly used code paths. Message block allocation routines are heavily optimized along with putnext and other low level primitives.
XTI/TLI Library
MPS offers an XTI/TLI interface through an application library and an associated module. The library may be configured to function according to the original UNIX TLI semantics or according to the X/Open XTI semantics. Mentat's XTI/TLI library works with any compliant TPI transport provider. Customer-supplied modules and drivers which conform to UNIX System V Release 4 Programmer's Guide: STREAMSwill function without change on MPS.
Sockets API
MPS offers two types of Sockets application interfaces, either a Sockets library with associated module or a kernel Sockets system call layer. The Sockets library is easily ported and provides the same level of Sockets compatibility found on SVR4 systems. The system call layer, an extension to the MPS Stream head, combines the fullest BSD Sockets compatibility with the highest levels of performance.MPS supports dynamic module loading through whatever facility the operating system provides for loading and unloading kernel code.
Additional Features
MPS supports dynamic module loading in conjunction with facilities provided by the operating system for loading and unloading kernel code. MPS also supports traditional UNIX synchronous system calls as well as the asynchronous interfaces more common in non-UNIX systems.
 

 

Portability

Mentat Portable Streams is supplied as a set of ANSI C source files. Porting MPS requires writing functions for the target operating system to provide:

Translation of system requests (read, write, open, close, etc.) into the canonical format used by MPS
A mechanism to run the STREAMS scheduler
Access to a kernel memory allocator
Access to a kernel timer
Translation between system file descriptors and streams

The port-specific code typically requires a single source file of about 35 C functions. Examples of the port-specific functions are provided with MPS. Most porting activity, including planning and tuning, can be completed in less than one month by an engineer with experience in the target operating system.

 

System Components

MPS includes the following components:ity functions

Complete Stream head code
Header files
STREAMS utility functions
LOG device and applications
SAD device and autopush utility
XTI/TLI Library and module
Sockets library and module or kernel Sockets system call layer
Stream head diagnostic tools
TLI/TPI verification program and module
Pipes and pipemod module
Miscellaneous modules: pass, spass, tmux, echo, null device

 

MPS Components Diagram

 

 

 

For more information on Mentat Portable Streams or for details on product licensing, please contact Mentat at:

Mentat Inc.
1145 Gayley Ave. Suite 315
Los Angeles, CA 90024 USA

phone: (310) 208-2650 ext. 28
toll free: 888-4MENTAT (888-463-6828)
fax: (310) 208-3724
email: info@mentat.com

 

Mentat logo


Home
| Top of this page

© 1999 Mentat Inc. All rights reserved.