Aspects of portability of the UNIX shell

The problems posed by the design and implementation of a command-language interpreter for a subset of the UNIX shell on the PULSE distributed operating system are described. The design of a command processor is addressed as the problem of transferring a user-perceived model of system behaviour from one physical system to another. The major differences between PULSE and UNIX are considered, and next how the shell language may be implemented in terms of the facilities of each system. An important discussion concerns the use of Ada tasks in PULSE and how this affects both the structure and the readability of the resulting program, in this case the shell. It is concluded that the overall structure is not greatly different, but that the use of tasks nevertheless requires careful appreciation of their allocation and termination.