Tugger the SLUGger!SLUG Mailing List Archives

Re: [SLUG] Re: 40 Years of Unix


"Shell" is a set of functions that includes a text-based user interface.

It hides the function details and complexities of the inner core or Kernel
of the Operating System (OS). The Kernel is comprised of the device
drivers to access various types and brands of disk, printers, networks,
and other hardware peripherals in the market. There are dozens of
each kind and type of these peripherals out there. For each of these
peripherals a unique device driver maybe needed for it to work.

For example, the shell could read data from any disk, ide, sata, or scsi
using a single function call. This is possible because the OS is layered.

It's called Shell because it covers the Kernel of the OS.

In many illustrations of the Unix OS,the OS is presented as a sphere,
with three layers. The inner most layer is the Kernel, the next layer is
the Shell which surrounds the Kernel, and the Applications which
surround the Shell. This is to illustrate that Applications request
services via the Shell. Of course one could write an Application to
bypass the Shell but only a masochist or a fool would do that. There
are always exceptions to this last statement, i.e., if an application
requires better access efficiency or some cute features.

Applications request OS services from the Kernel through the Shell. The
OS returns the result to the Application via the Shell.

One obvious reason why we love the shell is, so that we do not need
to rewrite our Applications every time there is a new brand or type of
device. Our OS developer or Device manufacturer writes the device
driver and we simply add that to our Kernel. Installing is easier than
developing. There are scores of peripherals manufactured every year
and so imagine the amount of modifications that Application developers
will have to do if OS was not designed with a Shell.

KDE, GNOME, etc., are shells with Graphics User Interfaces.