WIMP interface for Unix H E BEZ
Abstract: This paper describes some recent research and development into providing graphical alternatives to the usual command interface to the Unix operating system. Attention focuses on a WIMP svstem developed for the Apple Macintosh computer. Keywords'." s()/'tware development, command interfaces, Un&
t is widely recognized that the raw command interfaces to many operating systems are not optimized from the point of view of human interface design and present problems for both novice and occasional users. The Unix system has been criticized in this respect ~ and some supporting experimental evidence has been produced 2. In recent years an iconic alternative to the command interface of Unix has been under development 3-5. The aim throughout this research and development has been to provide novice and occasional users with a simple graphical interface to many of the facilities offered by Unix. At the time the project began direct manipulation techniques, although well tried in special application environments 6-s, had not been widely considered as an alternative to command language interfaces to operating systems. Shneiderman 9 provides an historical perspective and discusses the problem domains in which direct manipulation interfacing has been applied. The first working prototype 3, named Unicon, assumed the simplest possible graphics workstation and had a restricted capability, particularly with regard to program development. For example, there was no provision to compile programs-most of the facilities provided were for file creation and manipulation. In addition the system made no provision to input command parameters nor to set up pipelines and multitasks. Considerable commercial interest was shown in the Unicon prototype and this led to the development of an improved system. The new Unicon system has both an increased functionality, including the ability to compile and execute programs, and an improved display layout. The design still assumed a
i
very basic graphics workstation with character and vector drawing output capability, and locator and keyboard input only. This was a deliberate design decision to enable the system to be run easily on any graphics terminal. The layout of a Unicon screen, shown in Figure 1, comprises four display areas i.e. • the status area to display information about the user, the current directory and the date and time, • the file store display area showing the current directory contents in iconic form, • a message area for the display of information from Unix, • the Unix tool display area showing the Unix functions available from the interface. Such niceties as icon dragging were prohibited, at the design stage, by the display functionality assumed, and consequently Unix commands are built by picking appropriate icons from the file and command areas. No graphical representation of partial or complete sequences is displayed, however the interface does not permit invalid sequences to be constructed and a limited degree of editing of the input sequence is possible via the cancel and delete icons. This paper describes a later interface to Unix built especially for the Apple Macintosh computer. It makes full use of the WIMP workstation environment and runs as a Macintosh application, using the Macintosh as an intelligent terminal and communicating with a remote Vax 11/750 running Unix 4.2 BSD. The system,
luslZheniall4elmut
Directory User
cs 197
Er*or
Un~F.~
I
II
Jl
Ol
pL~e
lll'~y
•
vol 30 no 8 october 1 9 8 8
~rR
O0
l~ol
Thu
Jan 10
%es£
13 1 0 48
£emt 1 % ~ m £
~
1985
£esg 2
I X~r~tory
pri*~
Department of Computer Studies, University of Technology, Loughborough, Leics LEll YFU. UK
Status
¥0~
Edit
Make dir
~i~
Figure 1. A Unicon display screen
0950-5849/88/080477-07503.00 © 1988Butterworth & Co (Publishers) Ltd
477
which is written in T M L PASCAL, is designed for the increasing n u m b e r of c o m p u t e r users familiar with running applications on W I M P systems but unfamiliar with conventional operating systems. The interface is intended to provide an intermediate position for such users wishing to migrate to a Unix e n v i r o n m e n t . To this end the Unix c o m m a n d equivalent of any task built from icon sequences is displayed at all times. The m o r e experienced, but infrequent, user may also find an iconic alternative valuable. Ultimately it is intended to incorporate the iconic system into a m o r e c o m p r e h e n sive interface offering a mixed media approach. Users could then select their preference for a particular session or task perhaps from a pull-down menu. The Macintosh interface described here owes something both to the earlier work, alluded to above, and to the work of others t°. It is h o w e v e r fundamentally different in m a n y respects. Presentation
component
~
Add t o structure
,
Options
Edit structure
" - I " l i s t in long f o r m a t
,Unix Operators Unix Commands
" - s " g i v e s i z e o f files
U s e r Files
"-d"
Insert
Delete Change Clear
s h o w directory names
Go
p Helmui.l
~USPI Nigel
histogram p histogram o
of the interface
W h e n the system is first invoked it has a uniquely simple a p p e a r a n c e belying its real power. T h e screen, shown in Figure 2 in its initial state, has just three areas; a set of pull-down m e n u items, a text window and a scrolling graphics window for the display of c o m m a n d structures. T h e screen is not cluttered with file or Unix c o m m a n d icons; these are available, on request, from the pull-down m e n u 'add to structure' on the top left. T h e o t h e r items on the m e n u are 'options' for the input of Unix c o m m a n d options and parameters, and 'edit structure' which provides powerful editing facilities of the graphical input structures. The design allows easy access to any feature but does not look too imposing. T h e menus and their s u b m e n u s are illustrated in Figures 3 and 4, where it can be seen that the s u p p o r t e d Unix functions, or c o m m a n d s , are g r o u p e d into types as follows: File handlers Printers Information Editors Filters Compilers
(
i
File S e l e { t l O n
progrsmdoe
hislogram
II~ll
arser
e
hello
:
pdyl
3d-~r
p
tine-pt~e
index.p
pfile
parser
selshore c
II~l I~1(111
Figure 3. The layout of the menus
- cp, mv, cat, rm, head, tail, split - lpr, lqr
- who, calender, date - ed, vi - grep, egrep, fgrep, sort, uniq - cc, f77, pi
Figure 4. The command submenus
_=-=F-i....
C o m m a n d Structure
The icons representing the function groups of this list m a y be identified by reading the 'Unix c o m m a n d types' window, shown in Figure 3, from left to right. The icon used for each function within a g r o u p is similarly d e t e r m i n e d by reference to Figure 4. The Unix operators provided are as follows: Null
- used to separate commands and arguments The separator ';' - used to separate sequential commands ~i!i!iii)ii!!i!i~iiii)i)i)))j!)i)))i))))j)!iii)ii))iiiii)ii))i)i)ii!i))i)i)i))))ii)j)!))i)i)i))))i)iji))))!iij)i))ii)))))i)ii)))i)j)))!j)))i)i)i!~))~))!i~i)!~)!i)))!i!)~))!!)i)ii!!))))!))j)~ Channel Input ' > ' - used to channel output of a process into a file Figure 2. The initial screen
478
' '
information and software technology
Channel Output ' < '
- used to channel a file into an input process - used to connect two processes so that the output of one becomes the input of the other - similar to pipe, but additionally sends output to a file - used to separate commands to be multitasked
Pipe 'l'
Tee 'ltee' The separator '&'
The icon corresponding to each operator in this list may be identified by scanning the 'Unix O p e r a t o r s ' window, shown in Figure 3, from left to right. The c o m m a n d structure window is the central feature of the interface and is on display at all times; it is a scrolling window on a larger two dimensional virtual area available for user input. When a background task is created the window automatically scrolls vertically allowing a further task to be input in a fresh horizontal area, it will also scroll right to left as necessary. Standard Macintosh scroll bars are provided for manual scrolling of the c o m m a n d window. The text window displays the Unix c o m m a n d equivalent of the iconic structure being built in the c o m m a n d structure window; it shows the c o m m a n d equivalent of a complete structure whereas the c o m m a n d structure window may only show the current portion of a long input structure. A typical screen, showing the graphical representation of the Unix command: pi apple.p !grep errors I lpr is shown in Figure 5. For the display of directory information the interface uses a paging system; each page displays a m a x i m u m of fourteen items, some of which may be subdirectories, and the directory is paged by i c o n - - s e e Figure 9. Subdirectories are dealt with in the classic Macintosh fashion, i.e. a directory icon appears in the file area which, when selected, opens the subdirectory in the window. Clicking the exit box in the top left returns the user to the parent directory.
control over the placement of icons in the c o m m a n d structure window could lead to chaos. Instead each icon, when selected, is positioned automatically at an appropriate place in the graphical c o m m a n d representation. The main tools for building the graphical structures are available on the ' A d d to structure' menu; the 'Options' menu allows c o m m a n d options to be entered and a comprehensive set of facilities to edit the graphical representation is available on the 'Edit' menu. Files can be picked from the displayed current directory in the user file area. New files can be named using the keyboard icon (see Figure 13). When a c o m m a n d is completed it may be executed by selecting ' G o ' from the add to structure menu. The interface is closed down by closing the c o m m a n d structure window. The input process is most easily described by example, and to this end the main steps in defining the graphical equivalent of the Unix command: cc parser.c I tee heb ! ipr & cat histogram.p are illustrated. Initially the 'Unix C o m m a n d s ' option is selected from the ' A d d to structure' menu. This gives the screen shown in Figure 6. At this point the ' C O M P I L E R ' item is selected and a further menu showing the available compilers is displayed, see Figure 7. The ' C ' compiler icon is now picked and it appears in the c o m m a n d structure window: the text window Options
Edit structure
C o m m a n d Structure
Dialogue component While icon dragging is appropriate for simple interactive applications it was not thought to be suited to this particular problem. It was felt that allowing total
~ ~iii!ii!ii! i iiiiii!il i i i iiiii!i i i i i iii!i!iiiiiiiiiiiil
ili!iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
i! iiii Ic~
Figure 6. Select the compile icon
pi apple p Igrep errors llpr
i . o m m a n u ~rruc(ure
C o m m a n d Structure
apple
o
iiiiiiiii iiiliiiiiiiiiiiiiiiiiiiiiiiii!iiiiiiiilililiiiiiliililiiiii~iiiiiiiiiiiiiiiiiiiiiiiiiiili!iii'iiiii!iiiiiiiiii!!!iiiiiiiii!iiI
Figure 5. A typical screen
vol 30 no 8 october 1988
Figure 7. Choose the 'C' compiler
479
simultaneously displays the string 'cc' as shown in Figure 8. The user now selects the option ' U s e r Files' and a window displaying page 1 of the current directory appears, this is illustrated in Figure 9. A 'C' source file is now picked and it appears in the c o m m a n d structure window separated from the compile icon by the null operator - as shown in Figure 10. The tee operator icon, see Figure 11 and 12, is accessible from a window which appears when the 'Unix O p e r a t o r s ' item on the ' A d d to structure' menu is selected.
At this point the keyboard icon is used to name the new file 'heb' for the tee operator, see Figure 13 and 14. The pipe icon is now selected from the same window as the tee, and the printer icon is chosen from the 'Unix C o m m a n d Types' window. At this point the display appears as shown in Figure 15. To create the background task the ' & ' operator is now selected, see Figure 16, and the c o m m a n d structure window scrolls vertically allowing the separate task to be input in a fresh area, see Figure 17. The task is now built using the bin icon from the 'File
Command
Structure
parser
~
Figure 8. Compiler icon in place
'~r,!ii!ii i
i
I~
Figure 11. Select the tee operator Add to structure
Options
Edit structure
cc par~er c
kistograrnp
hislograrno
histogram
hello
title-page
pfile
seashore c
,,
OL1;
nextpaqe
i
}
iiiiii::~iiiiii
i;ii
Figure 9. Select a file from the user directory
Command
Structure
!I
Figure 12. Tee icon in place Options
Helrnut 1
Nigel
fi~tograrn p histogram o
(~t
h'b
E d i t structure
prograrndo¢
parser c
3d-'war p
index.p
parser
hi~togrlm
hello
riCe-page
pole
seashorec
/
"~
next paqe
)
parser
Figure 10. Source file icon in place
480
Figure 13. Keyboard icon in use to name a new file
information and software technology
cc parser c Iteeheb llpr& rm histogram p
Command
~D ~
histog
parser
IOI~ !~i~ii~iiiiiiiiiiiii~iiiiiii~iiii~i~i¢~!~!~!~!}!ii!!i!]i~iiii]i~i~i¢~>~ .................................. ~!~i~iiiiiiiii!![i[i}¢[i[iiii¢iiiiiiiiiiiiii~iiii1¢~i~¢~ii!ii!ii~!iiiiiiiiiiiiiiiiiiiiiiiiiiii~¢ 10 .................................
:
ii
i~:
:.i
i [ ] i
Figure 18. New task defined
Figure 14. New file in place
cc parsertc Iteeheb IIpr
cc parser.c Ree heb llpr& rm histogram p
Lommano
_=-/I
Structure
=--EI
slruclure
Command
~
Structure
hlsto9
par~er
DEI
iii iiii i:. i
iiii~iii
iiiiii; ii¢
I¢ U : !
DJr~r
}
:
q
Figure 19. Both tasks visible by scrolling command structure window
Figure 15. Line printer icon in place
cc parserc Itee heb I I p r
Command
Structure
I__--F, ~ = ,
Command
Structure
parser
parser
ir,x
Figure 16. Select '&' operator
:i
iirii
ilo
Figure 20. Compiler icon selected
cc parserc fleeheb Ilpr&
=-If
Lommana
~iruclure
i iii;~,i i
i ~i IO
Figure 17. Window scrolled for input of new task
vol 30 no 8 october 1988
Handlers' window and the appropriate selection from the user file window. The display is now chosen as shown in Figure 18. The scroll bars of the c o m m a n d structure window may now be used to show both tasks if required, see Figure 19. C o m m a n d options are set by picking the appropriate c o m m a n d icon in the c o m m a n d structure window and then selecting options from the 'Options' menu. To illustrate we show how options are added to the c o m m a n d cc parser.cltee hebIlpr constructed earlier. Initially the 'C' compiler icon is selected and it is highlighted as shown in Figure 20.
481
_=W
Lommano
xIruclure
,,,,,,i!iiii: parser
par~er
ii!i
2@ •©l
© [Aiiii~i ¸ i ~iii i~iii!iii!iiiiiiiii!iiiiiiiiiii~iiiiiiiiiiiiiiiiiiii iii!iiiii]i]ii!iiiiiii{!~iiiiiiiiiiiiiiii{iiiiiiii!~iiiiiii{i~iiiilli{iiiiiii!iiiiiiiiiiiiii!iiiiiili!i!i!iiiii!!!!!!!!ii!!!i!!i!!!!ii!i!iiiil ¢~
Figure 21. 'C' compiler options now available on pull-down menu
,,
:,::
::
:
IO
Figure 24. Delete item highlighted
0 -C parser c IIpr
~l
Command
-=-I
Structure
commaa{l
slruclure
iiii
K:LA~i~i~i~i~i~i~i~ii~ii~i~i~i~i~ii~i~i~i~ii~iiiii~i~iii~ii~iiii{iii}ii~ii~i~iiiii~i{i~i}i~i~i~i{~ii~{~ii~i~i~i~i~i~i~i{i~i~i~!i~i~i~i!!!i!!!ii!!!!!!!!!~!![©
Figure 22. Text window with selected compiler options shown
[~!iiii~
~ ~!~!~!i~ ~ <<<
~
...............
~ ~:<~>~ i iiiii~fiiiiiiiiiiiiiii!ii!iiiii i~iiiiii i!iiiii!iiiiiiiii!i!iiiiiiiiiiiii!ii!ii!iii!ii!iiiiii!i!iiiiI ..........
Figure 25. Tee and file removed
tee is selected, as seen in Figure 23, and the 'Delete" item is selected from the 'Edit Structure" menu, refer to Figure 24. The tee and its associated file are then automatically r e m o v e d as illustrated in Figure 25.
The application model
iiiiii i
Figure 23. Tee operator selected A selection of compiler options are now available on the pull-down m e n u ' O p t i o n s ' as shown in Figure 21. Multiple options may be selected and the selections are e c h o e d in their correct position in the input string displayed in the text window see Figure 22. T h e ' E d i t ' m e n u item offers a powerful graphical editing facility; c o m m a n d s , files and operators can be substituted, deleted or inserted at will, subject, of course, to structural correctness. For example to delete the tee from the c o m m a n d cc parser.c I tee heb I l p r the
482
T h e interface has a partial model of Unix syntax and is thus able to assist the user, in many circumstances, without reference to the mainframe Unix system. In particular it will not allow the user to input c o m m a n d s that are structurally incorrect, this is achieved by dehighlighting menu options appropriately. Providing fuller support for the user may at times require c o m m u n i c a t i o n with the mainframe, for example to inquire about the current status of a particular file. The m a n a g e m e n t of this mediation between host and user is clearly a matter for the user interface, but such sophistication is not implemented in the current version of the system.
Some implementation details, the current status of the system and the direction of future work At the time of writing the interface is not an entirely self-contained Macintosh application, it forms an
information and software technology
integrated part of a Macintosh Switcher set together with a commercially available alpha terminal emulator. When the Switcher set is activated the terminal emulator is available to facilitate logging in to the remote Unix machine; following this the user is able to select the W l M P interface to proceed with the session. After login, the terminal emulator plays no further role as all subsequent communications with the Unix system are handled independently by the interface. The interface communicates with the Unix system via the Macintosh modem port using the FSread and the FSwrite procedures in the file manager component of the Macintosh toolbox, these are directly callable from the T M L PASCAL system. In this way it has not been necessary to write a driver, or other supporting software, for the Unix machine. Once the WlMP interface is selected it requests directory information from the remote machine by issuing a list command. When this information is received it is transformed into the iconic representation, using file type information, which may then be viewed and accessed via the 'User Files' option of the 'Add to structure' menu. The use of Switcher in the way described is not particularly convenient and is seen as a short term expedient only, to allow rapid development of the graphical interface. Future versions of the system will be entirely self contained. A more comprehensive syntax checker is required both to reduce the number of erroneous commands sent to the host for processing and to provide fuller support for the user. A window dedicated to Unix messages needs to be incorporated - currently Unix writes to the text window, this is unsatisfactory and a future version of the system will provide a separate scrolling window for Unix to write to.
vol 30 no 8 october 1988
Considering the class of users for which the interface is designed a built-in help facility needs to be included. It is also intended that a future version of the interface will provide for an extended set of Unix facilities.
References 1 Norman, D A 'The trouble with Unix'. Datamation (1981) pp 139-150 2 De Leon, L, Harris, W, G and Evens, M 'Is there really any trouble with Unix?' CHI '83 Proc (1983) pp 125-129 3 Gittins, D T, Winder, R L and Bez, H E 'An icon-driven end-user interface to Unix' Int. J. Man-Mach. Stud. Vol 21 (1984) pp 451-461 4 Richards, J, Bez, H E, Gittins, D T and Cooke, D J 'On methods for interface specification and design' Int. J. Man-Mach. Stud. Vol 24 (1986) pp 545-568 5 Bez, H E and Cooke, D J ' A formal design methodology for end user interfaces- a small case study based on Unicon' Human-Computer Interaction, Interact 87 IF1P Conf. Proc. (1987) pp 989-995 6 Lipkie, D E 'Star graphics: an object-orientated implementation' Comput. Graph. Vol 16 (1982) pp 115-124 7 Smith, D C, lrby, C and Kimbal, R 'The star user interface: an overview' AF1PS Conf. Proc. Vol 51 (1982) pp 515-528 8 Webster, R and Miner, M 'Apple Lisa' Personal Comput. World Vol 6 (1983) pp 146-159 9 Shneiderman, B Designing the User Interface, Addison Wesley (1987) 10 Jovanovie, B and Foley, J D 'A simple graphics interface to Unix' Internal Report GWU-11ST-86-23 George Washington University []
483