next up previous contents
Next: Kernel Up: Operating System Concepts Previous: Virtual Memory

Shells

 

A shell is a special kind of program which sits between the user and the operating system. It takes requests from the user, and passes them onto the operating system to be acted upon. Some operating systems only have a single shell:

Most operating systems only offer a single shell to the user. It is possible to find alternative shells for MS-DOS, but they are not used very often. Both Macintosh and Windows seem to integrate the idea of the shell and the operating system.

Most versions of UNIX (including Linux) have many different shells available. The user is to some extent able to pick the shell that works best for them. In addition, some shells are better for certain tasks than other shells. For this reason, most shell scripts (batch programs in MS-DOS parlance) are written for something called the Bourne shell (sh), but users are more or less free to use sh, csh, ksh, bash, tcsh, ...as their ``interactive'' shell.

It has been mentioned that there might be a difference between a shell and a windowing environment. Personally, I don't think there is. A shell is a construction which interprets a users actions (I want to run program X) and passes the request onto the kernel. In this regard, a windowing environment and a shell a very similar.

The two ideas look very similar. The biggest difference I see is that one action can be accomplished without seeing the console (if you can type error free), which is a definite advantage if your display is burned out or you are blind.


next up previous contents
Next: Kernel Up: Operating System Concepts Previous: Virtual Memory

Gordon Haverland
Sat Oct 9 13:50:48 MDT 1999