[net.general] CS Qualifier OS Question on Shells

ijk@hou5e.UUCP (Ihor Kinal) (10/17/83)

The following is a question from a recent PhD qualifying exam that
I am having difficulty in answering in great depth.  I'm interested
if anyone could add something to my analysis.

Question:
" One design decision within an o.s. is where to put the command language
processor. ( Some times this component is called the JCL interpreter or
the shell).
Consider two systems
	A) Put the command language processor at the inner most level
of the O.S. as a special priviledged program.
	B) put it as a user process.
How would the selection of A or B effect the design of the remainder of
the operating system."

Analysis:
	Obviously case B allows for greater user flexibility with
differrent shells available for different users.  Security seems
the most important criterion, since you must protect the shell from being
replaced with a trojan horse that would log people out and then back
in (therebye learning their passwords).  More difficult to do this in
case A, since then you would have to basically replace the entire
o.s.  On the other hand, in case A, any unusual exceptions that were
not caught properly could easily put the user in an unprotected mode
with possible superuser priviledges ( I think OS 360 had such a 
problem).  Since the shell is separate, even a bug in its execution
would probably only core dump the user, and not affect the kernel.

That's about all that I can think of - it would seem that the rest
of the O.S. would be pretty transparent to this sort of thing.  If
you can think of anything else, or know of any texts that even 
discuss something of this type (and I've looked through several)
then I would appreciate knowing about this.

Ihor Kinal
ATTIS, Holmdel NJ
hou5e!ijk (talks to most Holmdel Bell Labs machines, ariel, ho* )
Thanx in advance.