Shells in an Interactive System
Balachander Krishnamurthy · Purdue e-Pubs (Purdue University System) · 1987
In considering the process of interaction between the user and the machine, a frequently used communication medium is the command interpreter which mediates between the user and the operating system.It provides access to all the utilities in the system-revision control systems, time based schedulers, compilers, mail handlers, and other application programs.We confine our interests to command interpreters in an interactive system where the window system is the front end to the various application programs and the command interpreter is an application program that the user can access.We seek to replace the traditional command interpreter with a shell that permits the user to specify frequently executed actions in a simpler manner.By looking at the most frequently executed commands we can see what commands can be eliminated in the environment of a workstation with advanced input devices and display techniques.If a command cannot be eliminated or replaced we seek to provide an improved interface both globally and specific to a command.Another motivation is that the interface remain user-oriented.An aid towards providing a user-oriented interface is dynamic tracking of a user's pattern of usage.By keeping track of a user's usage pattern we can build an interface that evolves with and is specific to the user. MotivationWe provide some historical background on the shells available for the UNIX environment and look at the current role of shells.For the UNIX operating system, there are three popular command interpreters.The first one was the Bourne-shell that was designed by Steve Bourne [3].The next shell that gained popularity was Bill Joy's C-shell, originally written in 1978.Recently another shell has been developed at Bell Laboratories-the Kornshell [5], designed by David Korn.While the functions of these corrunand interpreters are similar, the features vary: C-shell for example has a history