Since the transputer was designed with embedded control in mind, it does not have any on-board capacity for I/O, and must be used with some kind of host system for this purpose. In the current setup, a "root" transputer is linked (via one of its four on-chip serial links) to the host system (in this case, a 486-PC). A client-server software model is superimposed on this hardware configuration. The root transputer acts as client, sending I/O requests to a server program running on the host machine. The server interprets these requests and performs I/O operations locally, sending the results back to the transputer program. In this way, the transputer is made to appear as if it had I/O capabilities.
In the basic setup, the transputer network and host computer form a standalone system. The server program (Inmos "iserver") runs on the host machine (the simplest host is an IBM PC compatible computer), and waits on the root transputer link for incoming I/O requests. To use this system, one must be physically present at the console of the PC.
There are several disadvantages to the basic system outlined above:
A package called "PCserver" (developped by Luigi Rizzo at the University of Pisa) provides a convenient solution to these problems by allowing any workstation (connected to the PC via Ethernet) to communicate with the transputer network. The PC runs a program called PCserver, which routes data from the transputer link to a TCP/IP socket. The workstation runs a modified version of "iserver", which makes a connection to the PCserver socket and communicates as if it were listening to a local transputer link. A user at any workstation on the network can run iserver as if the transputer network were connected to the workstation itself. Since the transputer C compiler, linker, and all other development programs run on the transputer itself (and use "iserver" to communicate with the programmer), code development can be done at the workstation. The code is written using Unix tools; the "C" compiler is then uploaded (by "iserver") along with this code to the transputer network. The resulting object file is sent back through PCserver, to iserver on the workstation, which saves it to a file on the workstation's disk.
The PCserver configuration is a convenient one; however, "iserver" functions are limited to standard "printf", "scanf" and "gets" console I/O. The goal of this project was to enhance this interface by providing any workstation application direct access to the transputer network. The approach taken was to place another server program on the workstation; this server acts as a "mailbox" for messages passed between the iserver and application programs.