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.