User Interface
L O Ford
30.04.1976
Engineering Paper 43
An assumption has been made that engineers who use computers
do so in patches of maybe a few weeks at a time and that each time that
they start a new patch of computer work they need to relearn the operating
system commands. Therefore it is important that the operating system
interface presented to the user should be capable of being understood
as quickly as possible by the new user. An attempt was made to evaluate
the ease of use of the different operating systems. It is very difficult to
perform such an evaluation objectively so most of the findings presented
here are purely subjective.
An appropriate users manual was read before a session on a machine
and then an attempt was made to input a FORTRAN program,
compile it, edit it if necessary and then run it. Various other features
of the system were tested as well, such as listing of directories,
system status etc.
The following operating systems were tested:
- DEC SYSTEM 10 (KI 10)
- UNIVAC 1100 Operating System (UNIVAC 1108)
- KRONOS (CDC 6400)
- CANDE (BURROUGHS 6700)
The first two systems, DEC 10 and the UNIVAC 1108 were used at their
respective sites, Nuclear Physics department, Oxford University and the Institute of Hydrology. Consequently,
it was possible to input the test
program by paper tape or cards. the second two systems were used from
the Atlas building by telephone link and thus it was necessary to type the
test program in at the terminal.
The test program used was CPU1900.
The following pages illustrate the different operating systems and Table 1 summarises the commands.
Table 1
|
DEC-10 |
UNIVAC |
CDC-KRONOS |
BURROUGHS-CANDE |
ICL-GEORGE |
Entry key(s) |
CTRL/C |
Identity on keyboard eg UD108B |
CR |
CR |
CTRL/A |
LOGIN |
LOGIN (prog no, user no) |
@RUN runid, account, project-id eg @RUN ATLAS,ATLAS,ATLAS |
Prompted by computer |
Prompted by computer |
LN jobname,username |
Input of file |
MAKE filename CREATE filename |
Editor (@ED) (or @DATA in BATCH) |
Already in line editor (inputs to named workfile set in login) |
Already in line editor (inputs to workfile) |
INPUT filename |
Listing of file on terminal |
Type filename |
@PRT filename |
LIST (assumes workfile) |
LIST (assumes workfile)
LIST 100 (lists specific line) |
LF filename |
To copy temporary file to permanent file |
Type filename |
@PRT filename |
SAVE,tempfile=permfile |
SAVE AS filename |
LF filename |
To copy permanent file to temporary file |
Type filename |
@PRT filename |
FORT,OLD,TESTS subsystem filename |
GET filename |
LF filename |
Rename file |
REN newname=oldname |
@CHG eltname,eltname |
CHANGE,newfile=oldfile |
TITLE filename |
RENAME |
Delete file |
DELETE filename |
@DELETE eltname |
PURGE filename |
REMOVE filename |
ER filename |
Directory listing |
DIR (*.*) etc |
@prt, TL filename |
CATLIST |
FILES |
LD |
To call the editor |
EDIT filename for line editor. TECO for character editor |
@ED,oldelt, newelt or
@ED Y eltname (update) |
Already in editor |
Already in editor |
ED oldfile,newfile |
Free format FORTRAN |
- |
- |
Continuation lines + in first column |
Comments C* in columns 1 and 2. Continuation lines * in column 2 |
- |
FORTRAN compilation |
COMPILE filename (compile only) EX filename (compile and execute) |
@FOR eltname |
RUN (assume workfile) compiles and executes |
C:F (assume workfile) |
TASK F,*CR filename |
Consolidation |
- |
@MAP |
- |
(BIND filename) |
- |
Execution |
EX (loads or compiles) |
@XQT eltname |
RUN (if binary saved need switch - will compile as well) |
E (assumes workfile) |
- |
Logout |
K/F |
@FIN |
BYE |
BYE |
LOGOUT |
User/system status |
SY. or SY |
@STATUS |
STATUS |
?STATUS |
WS |
Prompt |
. |
> |
- |
- |
time |
Notes on each machine operating system
DEC-10
- There is no distinction between workfiles as with KRONOS and CANDE,
all files being regarded as permanent. There is however, the concept of the
retained filename. This means that if for example in the EXECUTE command
the file name is omitted then the filename associated with the previous
command will be used.
-
DEC's wild-card specification of filenames is useful, ie the ability
to substitute an asterisk in the place of either the filename or the extension:
-
TEST.*
All files (BIN, REL, SAV, BAK etc) with a filename of test
-
*. BIN All files with an extension of BIN
-
*.* All files
-
TEST.SRC;*
All generations of TEST.SRC
This use of the * makes up for the lack of a shortform of directory
listing, full information is given on every file with command DIRECT
(filename, extension, blocksize. protection code. creation date).
- The HELP command is not too useful for the terminal as it implies
the output message % FILE IS LONG - WOULD YOU PREFER LPT LISTING? that
help is verbose. One supposes that this would be satisfactory on a line.
- The TECO editor is complex for the first time user mainly because it is
a character orientated editor rather than a line-orientated one which most
people are used to. However, LINED, a simple line editor can be used.
Mention was also made of another editor called SOS but this was not tried.
When one learns to use TECO the facilities offered are impressive.
- There is one command to compile, load and go (EXECUTE).
If a REL file exists with a later creation date than the SRC file then
that file is loaded. However, if the SRC file is more up-to-date a
compilation is performed first. This use of one command makes the system
simple to use.
- FORTRAN run-time file assignment is not flexible :
- Only one logical device can be assigned to a physical device ie one
cannot perform terminal input and output on different FORTRAN streams.
(One should apparently use non-standard FORTRAN statements TYPE and ACCEPT
for terminal communications or READ (1 and WRITE (1, Both of these methods
are not very convenient if one wishes to read from a card reader and output
to the line printer subsequently, say in BATCH mode.)
- There is no file assignment command at run-time, files must be
assigned to logical streams from within the program or the default filename
must be used. eg FOR003, DAT1 for stream 3.
- There is no pointer to the line in the FORTRAN source for FORTRAN
runtime errors, only the program counter plus the error type.
- The SYSTAT command (system status) lists on the terminal the current
status of all jobs in the system. There is an obscure command not
documented (SY.) to produce a subset of the total system status relevant
to the terminal user (ie to list which assignments of logical devices to
physical devices have been made).
Univac 1108
- The different definition of a file in the UNIVAC operating system
causes problems to the first-time user who is used to the standard
convention.
In 1900 terms a file is equivalent to a pseudo-directory and would contain
all the information relevant to one program or suite of programs whereas an
element is equivalent to a 1900 file.
- The FORTRAN compiler only accepts one routine per element.
This necessitates separate commands for compiling (@FOR) and consolidating (@MAP).
There are however two advantages to be gained by such a system :
- Users will be forced to compile only those routines that they have
updated instead of the whole program as tends to happen when one keeps the
whole source of the program in one file.
- Library facilities are provided by default as MAP searches for
unresolved global references through the whole program file.
- The FORTRAN compiler by default does not print diagnostic messages
only a count of the total number at the end of the compilation.
One needs to obtain a full compilation listing to find out what they were.
- The UNIVAC editor is a straightforward to use line-orientated editor
which allows movement in both directions in the file. It does however
have annoying syntax in some of the commands eg C_/oldstring/newstring/
where the space denoted by the underline is significant.
- Logging in to the system is difficult to the first-time user, at IOH
one needs to type the terminal identifier eg UDI08B to contact the system.
Is this a security measure?
- The use of one command with different options is confusing
to the first-time user:
@ PRT element name - list the element
@PRT,T filename - short directory listing
@PRT,TL filename - long directory listing
- To communicate with the terminal from a FORTRAN program stream 5 must
be used for input and stream 6 for output.
KRONOS - CDC 6400
- The logging-in sequence is prompted by the system which assists
the first time user. Selection can be made at logging-in time of the
FORTRAN sub-system so that all future commands such as RUN refer to
compiling and running FORTRAN programs.
- The use of the FORTRAN subsystem means that one can input free-format
FORTRAN, assuming one knows CDC's convention for free format ie statements
may be typed starting in any column, continuation lines start with +. When
one has typed in the program one only has to type
the command RUN to compile, load and go.
- KRONOS uses the concept of workfiles and permanent files.
This means that unnecessary temporary files do not accumulate in ones
directory.
- The FORTRAN compiler only produces a list of error messages by default
with a reference to the offending line number. One needs a complete listing
of the source file to determine what the errors are.
- FORTRAN run-time error diagnostics are poor, a dump of registers plus
locations around the instruction which caused the error. A TRACE system
such as Manchester MANTRAP would be useful.
)
- The global editor commands are obscure and difficult to use for the
inexperienced user.
- KRONOS provides a very useful HELP feature which is not verbose and
therefore applicable to the terminal user.
- Any FORTRAN stream can be used for terminal communication but a
statement of the following form must appear :
PROGRAM FORT (INPUT, OUTPUT', TAPE1=INPUT, TAPE2=OUTPUT)
CANDE - Burroughs 6700
- The logging-in sequence is prompted by the system which is useful
to the first time user.
- CANDE uses the concept of one workfile and many permanent files. All
operations are assumed to refer to the current workfile.
- Two commands are needed to compile and ,execute a program, C:F
(compile a FORTRAN program) and E (execute). The F qualifier on the compile
command could be omitted if the source file type at creation is specified
as FORTRAN.
- Free-format FORTRAN may be input from the terminal if the following
convention is adopted :
- Comment lines start with C*
- Continuation lines start with *
- The FORTRAN compiler lists the offending line together with a pointer
to the first character in error in the FORTRAN source when it detects an
error. This means that one does not need to possess an up to date source
listing of the program.
- FORTRAN run-time error diagnostics provide the line number of the
statement in error 1n the original source file.
- FORTRAN streams 5 and 6 are used for terminal input and output.
Comparison of the different operating systems evaluated
One can divide the four operating systems into two distinct classes,
the DEC-10 and UNIVAC operating systems being in one class and the
CDC (KRONOS) and BURROUGHS (CANDE) operating systems being in the other.
This second class is categorised by having the following features :
- The top level of the command structure is the editor, in the case of
KRONOS a line editor and for CANDE a line and context editor.
On login to both KRONOS and CANDE a selection of a workfile can be made and
control is left in the editor.
- Both CANDE and KRONOS use the concept of a language sub-system.
In KRONOS selection of the sub-system, such as FORTRAN, is made at login and
all subsequent commands assume that one is compiling and running FORTRAN
programs. Selection of the sub-system in CANDE can be made when a file is
created.
- Both CANDE and KRONOS have both workfiles and permanent files,
current activity always uses workfiles. KRONOS has named workfiles whereas
CANDE only has one unnamed workfile.
- Both systems prompt the user at login and so do not require the user to
remember the login sequence. It is also possible with both systems to
recover a previous session at the terminal if for example noise on the line
has caused the system to break the link. This means that although a workfi1e
was being used at the time of the break information is not lost.
On the CDC machine that was used workfiles are preserved for 10 minutes
after a break or logging off the system.
The DEC-10 and UNIVAC operating systems use only permanent files and
the top level of the command structure is a command processor.
The editor is called from the top level. DEC simulates the workfile concept
by remembering the filename in any previous command and consequently
allowing the user to omit the filename if he is working with the same file.
UNIVAC always requires the filename in any file orientated command.
(1) Compiling and executing programs
On all systems it is easy to input a program, (using the line editor)
compile and run the program (EXECUTE on the DEC-10 and RUN on the CDC
operating system). On the other two systems two commands are required,
one to compile the program (@ FOR on UNIVAC and C on BURROUGHS) and one
to link edit and load ((@XQT on UNIVAC and E on BURROUGHS). EXECUTE on
the DEC-10 has the added advantage that it does not re-compi1e the program
if a relocatable file of a suitable creation date already exists
(one can override this by requesting a compilation).
(2) Editing
Context editing can cause more problems using the different operating
systems than the use of the straightforward line editors.
The TECO editor of DEC being one of the hardest ones to understand because
it is a character orientated editor rather than a line-orientated editor.
However, the facilities offered by TECO for the advanced user may outweigh
the initial learning difficulties.
(3) Errors encountered during compilation and execution
Most of the systems are similar in inputting, editing, compiling and
running
programs, however, they differ in the facilities they provide to the user
in the event of FORTRAN compilation errors or execution errors.
For example the CDC FORTRAN compiler by default produces a list of error
messages which refer to specific lines in the source, but a source listing
is required by the user to identify the errors and correct them. In CANOE
the compiler not only produces the error messages but also lists the line
in error with an asterisk denoting the first character in the line in
error.
Diagnostic error messages are in the UNIVAC FORTRAN compiler only counted
by
default, it is necessary to produce a full compiler listing to determine what they
refer to.
The amount of information produced by the system on finding a runtime
error differs greatly. For example DEC just produce an error message
informing one of the type of error, whereas BURROUGHS also list the line
number in the original source listing. Both systems also list program
counters and other machine specific numbers. CDC produce a verbose dump of
accumulators and core around the instruction at fault. DEC has the most
advanced fault finding aid in DDT (dynamic debugging technique) which allows
one to control interactively the running of ones program. One can position
break-points and print out the contents of specific variables.
(4) Summary
On the whole there is not much to choose between the various operating
systems.
All have been written to make interaction with the system easy. Each of the
systems has its good points and weak points, for example :
- DEC runtime diagnostics are not so good (ie no source listing pointer)
but they provide DDT to compensate.
- BURROUGHS provide the best FORTRAN compilation diagnostics with a
character pointer to the line in error.
- CDC provide the best HELP facilities suitable for a slow-speed terminal
user but poor FORTRAN run-time diagnostics.
- UNIVAC provide the best default library management facilities.
The operating system which I would regard as less suitable than the
other three for novice users is the UNIVAC firstly because of its file
definitions being different from the other machines and secondly because
of the cryptic system commands with their heavy reliance on switches for
different options.
I am informed, however, that for experienced users these two points are
an advantage because in the first case one can create libraries simply and
secondly because of only needing to type in small amounts of terminal input
to perform a lot of operations.
The remaining
three operating systems provide much the same facilities with DEC
providing marginally more control over the interactive running of programs
with DDT.