Operating Systems today generally consist of many distinct pieces or components. We can simplify our description of an OS by viewing it as many layers of related components. A generic OS layered diagram is pictured below. Note the component at the top of the diagram is the user, and the component at the bottom of the diagram is the physical hardware. Management (control) of all tasks in between these two physical components is the responsibility of the OS.
As with most modern operating systems, the Unix OS is also madeup of many different components. In a very general sense, Unix is divided into two main components, the kernel component and the utilities. The kernel, which is critical to the operation of the OS, is loaded into Random Access Memory (RAM) by the boot loader, where it remains memory resident for as long as the machine remains powered on. The utilities are programs which (typically) reside on a disk device (e.g. a harddrive). Individual utillities are loaded into RAM as needed or requested and are discarded from RAM upon completion.1 The relationship between the kernel and the utilities is pictured below.
Perhaps the most "important" or well known of the Unix utilitites is known as the Unix shell. The shell is the mechanism which allows users to enter commands to run other utility programs. There are several popular Unix shell programs which will be discussed later. What is important to keep in mind that the shell is merely another Unix utility program, which is typically loaded at login.
The diagram below (adopted from [Bach], p. 5) provides another visual representation of the organization of the Unix OS. At the core of the OS is the hardware, which is managed by the surrounding outer layer, the kernel. In the next outer layer come the utilities. Many of the utilities are system commands, but these can also be user written programs as shown by the a.out program.2 Finally in the outermost layer are other application programs which can be built on top of lower layer programs.
1 As RAM has become plentiful and affordable, many of the frequently used utility programs have become "built-in" to the shell.
2 The program a.out is the generic name given to executable Images
produced by the C compiler.
©2003, Mark A. Thomas. All Rights Reserved.