Multics Technical Bulletin MTB-740 MOWSE Overview To: Distribution From: Jim Gee Michael Flegel Date: 4 April 1986 Subject: Multics Online Work Station Environment (MOWSE) Overview 1. Abstract This MTB presents the functional specifications of a Multics Online Work Station Environment (MOWSE) package for Multics and IBM-PC compatibles running MS-DOS. There are five MTBs that describe the design and implementation of MOWSE and some applications that use MOWSE facilities. The five MTBs are: MTB-740 MOWSE Overview MTB-741 MOWSE Design, Commands and Subroutines MTB-742 MOWSE Background File Transfer (BFT) Facility MTB-743 MOWSE Personal Computer File Backup (PCFB) Facility MTB-744 MOWSE Terminal Emulator Comments on this MTB should be sent to the authors - via Multics mail to: Gee@System-M or Flegel@System-M via forum on System-M to: >udd>m>jms>mtgs>workstation_working_group (wwg) via telephone to: ACTC (403) 284-6400 _________________________________________________________________ Multics project internal documentation; not to be reproduced or distributed outside the Multics project. MTB-740 Multics Technical Bulletin MOWSE Overview TABLE OF CONTENTS Section Page Subject ======= ==== ======= 1 i Abstract 2 1 Preface 3 2 System Requirements 4 3 Introduction 5 4 The Current Multics-PC Environment 6 6 The Multics Online Work Station Environment 7 7 MOWSE Capabilities 8 9 Establishing MOWSE 8.1 9 . . Starting up MOWSE on the PC 8.2 11 . . Starting up MOWSE on Multics 8.3 12 . . Running the Terminal Emulator 8.4 12 . . Getting a Background Application Started 9 14 Glossary/Usage Multics Technical Bulletin MTB-740 MOWSE Overview 2. Preface Purpose: The purpose of this MTB is to introduce the concepts behind a mechanism called the Multics Online Work Station Environment (MOWSE). MOWSE provides the means for cooperating processes on two different computers to communicate with each other and to exchange requests for information or processing. The current implementation of MOWSE is on Multics and the IBM-PC running MS-DOS 2.0 or greater. Audience: This document is intended to provide a relatively non-technical overview of MOWSE. The abstract lists the other MTBs which deal with the design of MOWSE and related topics. Directory to the document: The background for this proposal is presented in the Introduction. Following that, the current scenario is discussed, with an analysis of the present capabilities of a PC linked to Multics. The MOWSE scenario is then diagrammed, with an analysis of the added capabilities available through the proposed environment. Finally, a view of the system from a user's perspective is presented. A glossary/usage section at the end of the document provides definitions of terms used to describe MOWSE, as well as expansions of the acronyms used. Acknowledgements: We would like to thank Hal Hoover and Brian Westcott for their contributions. MTB-740 Multics Technical Bulletin MOWSE Overview 3. System Requirements The current implementation of MOWSE is designed to run on an IBM PC (or close compatible) that is using MS-DOS , release 2.0 or greater. A minimum of 256K of memory is suggested if background applications are to be run. Although, MOWSE does not require a hard disk, it is strongly recommended that one be used if any background activities that perform disk accesses (such as the Background File Transfer facility) are to be executed. MOWSE cannot be used in a Multics DSA environment since both DSA and MOWSE utilize incompatible versions of tc_io_. Multics Technical Bulletin MTB-740 MOWSE Overview 4. Introduction Background There has been much discussion by the Multics community concerning the future role of the Personal Computer (PC) in the Multics world. The present role of the Personal Computer, terminal emulation, is a very minor one. With terminal emulation, two systems are physically available, but only one is truly utilized. With this in mind, discussion has centered upon how the Personal Computer can be better utilized for the Multics user. Two opposing philosophies have developed depending on the needs of the user. One philosophy involves that of Multics Master - PC slave, where the user does the majority of his/her work on Multics. The second philosophy is one of a PC master - Multics slave, where the user does the majority of his/her work on the Personal Computer occasionally requiring the service of the Multics file system, mail system, etc. Proposed Solution Multics users should not have to adopt one philosophy at the expense of the other. Rather, an environment should be provided that allows individual users and sites to define their own required relationship. MOWSE provides the means for cooperating processes on two different computers to communicate with each other and to exchange requests for information or processing. MOWSE is designed in such a way that, given the limitations of the operating systems under which it operates, these processes may be active in the background while other foreground activities, not necessarily related to MOWSE, take place. MOWSE does not assume that one of the processes is dominant over the other, or that certain functionality is only available on one of the machines. Every attempt has been made during the design to ensure that the same functionality, in terms of MOWSE requests, exists on both machines. MTB-740 Multics Technical Bulletin MOWSE Overview 5. The Current Multics-PC Environment The Multics user with a Personal Computer on his/her desk has access to two complete systems. Each system has its own resources and associated software. Some resources are necessary for the system to function, while others are optional and merely enhance the system. The functions performed by each system are dependent on the resources known to it and the software directing those resources. It is the resources and associated software that determine the capabilities of each system. Because certain resources are necessary for the system to function, certain capabilities are always possible, although not necessarily utilized. Thus, to determine the capabilities of a system, the resources must be known. Below are the resources available to Multics and Personal Computers. PC RESOURCES RESULTANT CAPABILITY a single-user operating system - resource management a dedicated processing unit - task execution a monitor - screen update a keyboard - input receipt a communications port - external communication a file system - file management storage devices - data retention (tape, disk controllers) a printer - hard copy production other peripherals MULTICS RESOURCES RESULTANT CAPABILITY a multi-user operating system (Multics) - resource management a processing unit - task execution a communications port - external communications a file system - file management storage devices - data retention (tapes, disks) a printer - hard copy production From the above it can be seen that both systems are capable of performing many functions through the resources known to each system. Applications running on Multics use the resources known to Multics to complete their task, while applications running on the PC use the resources known to the PC to complete theirs. Multics Technical Bulletin MTB-740 MOWSE Overview Currently, individuals may establish a connection between the Personal Computer and Multics. To do so, the PC must become a resource known to Multics, namely a terminal. As a terminal, the PC directs data among the keyboard, the screen and the communications port. It takes on the capabilities of a terminal. All other PC capabilities are unknown. Applications running on Multics use the capabilities of the terminal to complete their function. To use the PC as a Personal Computer, the user must escape back to the PC, and quit the terminal emulator. He/she is now free to run applications on the PC. Such applications use the resources of the Personal Computer and typically have no knowledge of a powerful system at the other end of the line, namely Multics. MTB-740 Multics Technical Bulletin MOWSE Overview 6. The Multics Online Work Station Environment The previous section presented a brief overview of the current Multics-PC link. Such a link allows for Multics-terminal interaction. As a terminal emulator, the Personal Computer loses its status as a system, leaving many of the PC resources inaccessible while others play a very insignificant role. As anything other than a terminal emulator, the PC cannot utilize the power of Multics. A more powerful environment is one that incorporates the two systems, when they are available. Each system acts as a resource to the other, thereby providing many additional resources and the associated capabilities. The additional resources may be ones not previously available, or may be duplicates of already existing resources. As a result, applications that are able to access this larger resource pool will be able to (1) perform tasks that were not previously possible and (2) choose the system on which the task is best performed. The latter point encompasses those tasks that a system currently performs, that may be better suited to another system. MOWSE provides such an environment by adding the capability of loading and executing applications in the background on either computer. Background activities are activities that do not utilize user I/O facilities on either computer at any time except explicitly through MOWSE. Although MOWSE will accept requests for user I/O, there is no guarantee that the requested I/O will be performed unless a MOWSE terminal emulator is running. Background activities may indeed generate output for the user, but this output is buffered until the user issues a request for its display. Until such a request is issued, the screen is available for other tasks the user wishes to perform. The capability driver will provide a set of tools for applications running in the background. For example, file transfer and the Multics mail system are applications that could potentially make use of the background tools provided by the capability driver. Multics Technical Bulletin MTB-740 MOWSE Overview 7. MOWSE Capabilities MOWSE provides a means by which capabilities may communicate with each other. Within this environment, the following features are available on both systems: 1. Data Reliability Data transmitted between the two systems is reliable. To accommodate the various communication media and the associated differences, the communications link of the MOWSE will - allow transparent data for 7 or 8-bit connections - provide error-free data transmission in all cases - allow for full-duplex communications when available 2. Support For Background Activities MOWSE provides functionality that will enable an application running on either computer to invoke a program on the other computer. The invoked program can inform MOWSE of its presence and provide MOWSE with the address of a routine that can receive messages from other applications. MOWSE will activate the program whenever a message for it is received, even if another program is running at the time. EXAMPLE: File Transfer Applications Files may be transferred between Multics and the PC in the background while the usual user interactions occur in the foreground. Each system is capable of transmitting and receiving files simultaneously. File transfers may be initiated from either system at command or subroutine level. The file transfer application can use the background tools of the capability driver to achieve this end. 3. The Application-Capability Interface Applications running on either system may access the capabilities of the other through the capability interface. They may load any desired capabilities and use them. The interface provides the support routines that enable applications to MTB-740 Multics Technical Bulletin MOWSE Overview - execute a command on the remote system - exchange minor capability messages between background and/or foreground applications on either computer - verify that a specified capability or group of capabilities is supported by remote cpu - enter the background mode of operation - send error messages to a queue for subsequent display in cases where errors are detected by background applications and the foreground application is not supported by MOWSE - send background messages to a queue for subsequent display - request for input from user into a background application Applications may use the above to access external capabilities. There is no restriction on the types of tasks that can be offloaded. The only restriction is that the capability must exist and be accessible through the capability driver. The above features comprise the basic MOWSE environment. They are always available. Applications may use the features of MOWSE to enhance the overall user environment. Multics Technical Bulletin MTB-740 MOWSE Overview 8. Establishing MOWSE To use the MOWSE features, the user must establish a connection between the capability driver on Multics and the capability driver on the PC. To establish such a connection, the following steps must be taken: 8.1. Starting up MOWSE on the PC MOWSE is started on the PC by typing in the "mowse" command along with optional parameters. The PC MOWSE software will insert its own vector addresses in low DOS memory in order to capture interrupts from the COM1 or COM2 communications ports, and to receive interrupts used by the MOWSE software library routines for communicating with MOWSE. At this point in the invocation, MOWSE will activate a very primitive terminal emulator program that will enable a user to establish a link to Multics, and to log on to Multics. After having logged in, the user can invoke MOWSE on Multics as described in the following section. When the PC receives a RESET message from Multics in a standard MOWSE message format, the MOWSE environment is considered to be established. At this time, MOWSE will stop the operation of the primitive terminal emulator and issue a "terminate and stay resident" call to MS-DOS which has the effect of making MOWSE an extension of MS-DOS. MTB-740 Multics Technical Bulletin MOWSE Overview A PC View of MOWSE: _______ |RS232| ------- /| | |/ __________ |terminal| |--------|emulator|<--------| | | | | | ---------- | | | ___|/__ ____|_____ |screen| |keyboard| -------- ---------- Figure 1 - PC as Terminal Emulator _______ |RS232| ------- /| | |/ ___________ |MOWSE | |interrupt| |handler | -----|----- | |-------------|-------------| ____|/___ _____|/____ |terminal| |background| |--------|emulator|<--------| |capability| | | | | |driver | | ---------- | ------|----- | | | ___|/__ ____|_____ _____|/_____ |screen| |keyboard| |application| -------- ---------- ------------- Figure 2 - PC MOWSE Environment Multics Technical Bulletin MTB-740 MOWSE Overview 8.2. Starting up MOWSE on Multics MOWSE is started on Multics by issuing an "mowse" command. This will cause a module called ws_io_ to be inserted into the standard Multics terminal I/O routings as shown below. At the same time, MOWSE will establish a timer interrupt that will call MOWSE at fixed intervals in order to perform any outstanding I/O. MOWSE will then send a "RESET" message out over the TTY channel to inform the PC MOWSE that it is running. A Multics View of MOWSE: The diagram in Figure 3 (below) depicts the process terminal I/O routings that are possible after implementation of MOWSE support. The vertical path labelled (1) shows the conventional routings when a user process is not using either the video system or MOWSE. Path (2) represents the case of video being in effect without MOWSE. Paths (3) and (4) show the I/O streams when MOWSE is in effect without and with the video system, respectively. (1) (2) (3) (4) user_i/o user_i/o user_i/o background user_i/o background -------- -------- -------- ---------- -------- ---------- | | | | | | tty_ window_io_ ws_io_ | window_io_ | | tc_io_ | | tc_io_ | | | | | | | | | | | ws_tty_ | | | | | | | | | ___ ___/ ___ ___/ | | / / | | ws_ ws_ | | | | | tty_ tty_ ____________ __________/____________________/ / hcs_ | TERMINAL Figure 3 - Possible I/O Routings MTB-740 Multics Technical Bulletin MOWSE Overview The establishment of MOWSE results in the creation of two logical I/O channels over the one physical I/O channel linking Multics to the PC. One of these I/O channels is referred to as the "foreground" channel because all traffic between the user_i/o switch on Multics and a terminal emulator on the PC will use this channel. The other channel is referred to as the "background" channel because all traffic resulting from MOWSE library calls from background applications on either system is routed over this channel. The essential difference between a non-MOWSE environment and the MOWSE environment is the existence and support of the background channel. 8.3. Running the Terminal Emulator A terminal emulator program may in fact not emulate any known species of terminal. It is a program that runs in the foreground on the PC and communicates with the MOWSE foreground channel. Data that is received over the foreground channel from Multics will usually be displayed on the PC screen by the terminal emulator. Similarly, data entered from the keyboard on the PC will be read by the terminal emulator program and transferred to Multics via MOWSE's foreground channel. The terminal emulator program may also perform other functions in order to enhance or offload functionality from Multics. For example, The local echo negotiation functionality that is currently supported by Multics can be moved out to the PC and supported by a terminal emulator running there. 8.4. Getting a Background Application Started Applications on either system which will provide to or use resources on the remote system can be initiated and executed as a result of a request from the remote system. These applications, which will be known as MOWSE applications, must then make their names and entry points known to MOWSE. At this point, any program, on either system, whether known to MOWSE or not, may make use of the minor capabilities of the MOWSE applications by making calls to the local capability driver. Applications running on either system may use the capability driver interface to: Multics Technical Bulletin MTB-740 MOWSE Overview 1. Load the capabilities on the other system that are required by the application. 2. Issue requests to the other system to perform a specified minor capability. 3. Receive requests from the other system to perform a specified minor capability. 4. Support background activities. Background applications are only active when a message for them is received by MOWSE. When such a message is received, MOWSE will call the application through an entry address that was supplied to it when the application was initiated. The application can only communicate with MOWSE by means of a software interrupt that is defined and used by the MOWSE subroutine library routines. MTB-740 Multics Technical Bulletin MOWSE Overview 9. Glossary/Usage AH register Register used to store a MOWSE function number so that an application can access the specific function. AX register Register used by each MOWSE function to store an error code. application A program or group of programs which are required in order to perform a useful function, such as word processing, accounting, calculation, games, and education. BFT Acronym for Background File Transfer. Provides a facility for transferring files between two computers by means of cooperating processes running on each of the computers. This facility is intended to operate as a background process on each computer. BFT is a MOWSE application in that it makes use of MOWSE facilities for user I/O and communications. BIOS Acronym for Basic Input/Output System. A collection of programs that control the handling of characters between the Central Processing Unit and other devices of the computer system (keyboard, monitor, printer, etc.) in the IBM PC. background activities Activities that do not utilize the display or keyboard input facilities on Multics or on the Personal Computer at any time except explicitly through MOWSE. capability Any function that a system is capable of performing. Multics performs many functions, and therefore could be said to have many capabilities. These capabilities are known only to Multics and used solely by Multics. The same applies to most other systems, including a Personal Computer talking to Multics. capability driver The software used to activate a capability. Multics Technical Bulletin MTB-740 MOWSE Overview capability loading The act of making a capability known to MOWSE. This consists of requesting the command processor to execute the program that provides the capability and having that program notify MOWSE of its entry points. capability message A variable length sequence of characters that contains a major capability number, a minor capability number, and data parameters. Multics and the Personal Computer communicate through capability messages. CAT Acronym for Capability Address Table. A table that maintains information on the availability of capabilities, the calling of capabilities, and the certain states of capabilities. DOS Acronym for Disk Operating System. A program which remains in the computer's memory, consisting of instructions to enable the computer to manage the storage and retrieval of data from disks. It also enables the user to interact with the computer by entering commands at the console. FNP Front-end Network Processor MS-DOS A single user disk operating system for 8086/8088-based computers. Through MS-DOS, you communicate with the computer, disk drives, and printer, managing these resources to your advantage. major capability A function to be performed by a system. Major capability and capability refer to the same thing. major capability number A numerical identifier for a major capability. minor capability A specific function to be performed by a major capability. Each major capability may or may not have a set of minor capabilities associated with it. For example, the major capability 'calculate' may have minor functions of 'add', 'subtract', 'multiply', and 'divide'. minor capability number A numerical identifier for a minor capability. MTB-740 Multics Technical Bulletin MOWSE Overview MOWSE Acronym for Multics Online Work Station Environment. A mechanism whereby one system may dynamically determine the capabilities present on another system and may utilize these capabilities. PAD A routine that, given a string of data to transmit over a communication facility, will copy the data into one or more packets as required. PC Acronym for Personal Computer; in the context of this MTB, an IBM PC or close equivalent running MS-DOS 2.0 or greater.