Previous: 1.1.2 Computer Software -- The Operating System
Up: 1.1 Computer System Organization
Next: 1.1.4 User Programs and Applications
Previous Page: 1.1.2 Computer Software -- The Operating System
Next Page: 1.1.4 User Programs and Applications
The layer above the OS is labeled Utilities and consists of several programs which are primarily responsible for the logical interface with the user, i.e. the ``view'' the user has when interacting with the computer. (Sometimes this layer and the OS layer below are considered together as the operating system). Typical utilities include such programs as shells, text editors, compilers, and (sometimes) the file system.
A shell is a program which serves as the primary interface between the user and the operating system. The shell is a ``command interpreter'', i.e. is prompts the user to enter commands for tasks which the user wants done, reads and interprets what the user enters, and directs the OS to perform the requested task. Such commands may call for the execution of another utility (such as a text editor or compiler) or a user program or application, the manipulation of the file system, or some system operation such as logging in or out. There are many variations on the types of shells available, from relatively simple command line interpreters (DOS) or more powerful command line interpreters (the Bourne Shell, sh, or C Shell, csh in the Unix environment), to more complex, but easy to use graphical user interfaces (the Macintosh or Windows). You should become familiar with the particular shell(s) available on the computer you are using, as it will be your primary means of access to the facilities of the machine.
A text editor (as opposed to a word processor) is a program for entering programs and data and storing them in the computer. This information is organized as a unit called a file similar to a file in an office filing cabinet, only in this case it is stored on the disk. (Word processors are more complex than text editors in that they may automatically format the text, and are more properly considered applications than utilities). There are many text editors available (for example vi and emacs on Unix systems) and you should familiarize yourself with those available on your system.
As was mentioned earlier, in today's computing environment, most programming is done in high level languages (HLL) such as C. However, as we shall see in Section 1.2.3, the computer hardware cannot understand these languages directly. Instead, the CPU executes programs coded in a lower level language called the machine language. A utility called a compiler is program which translates the HLL program into a form understandable to the hardware. Again, there are many variations in compilers provided (for different languages, for example) as well as facilities provided with the compilers (some may have built-in text editors or debugging features). Your system manuals can describe the features available on your system.
Finally, another important utility (or task of the operating system) is to manage the file system for users. A file system is a collection of files in which a user keeps programs, data, text material, graphical images, etc. The file system provides a means for the user to organize files, giving them names and gathering them into directories (or folders) and to manage their file storage. Typical operations which may be done with files include creating new files, destroying, renaming, and copying files.