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.