C/IL 102
Notes on Software, especially Operating Systems

Acknowledgement: Much of the material on this page is based upon How Operating Systems Work

Recall that a computer program is a set of instructions that can be interpreted and executed by a computer. Software is a collective term for computer programs, although it is also sometimes used to refer to stored data. Software is commonly categorized as follows:

In recent years, desktop and laptop PC's normally have come pre-loaded with the most recent incarnation of the Microsoft Windows family of operating sytems, the latest of which is Windows 7. However, many people still use one of its predecessors, either Vista or Windows XP. Many corporate (and educational institution) computers run some flavor of Unix (possibly Linux), which is also popular among serious computer enthusiasts, who tend to view Windows (and Microsoft products in general) with some disdain. Apple Macintosh computers come pre-loaded with a flavor of Unix called OS X.

Special-purpose computers, such as those that control microwave ovens, have no need for an OS, because the set of functions they perform is narrow and unchanging, and hence these functions are typically "hardwired" into the electronic circuitry. Computational devices that are designed to be more flexible, on the other hand, run under the direction of operating systems. By "flexibile" we mean that their behavior can be changed, either by upgrading (or adding new) application programs or possibly even upgrading (or replacing) the OS itself. Cell phones and personal digital assistants (PDAs) utilize OS's (e.g., Android), although they tend to be somewhat more rudimentary than the OS's used on more powerful desktop/laptop computers.

Question: What does an operating system do?

Answer: At least two main things:

  1. It manages the hardware and software resources of the system, including the processor, memory, and disk space. (On a cell phone, this list would include the keypad, the screen, the address book, the phone dialer, the battery, and the network connection.)
  2. It provides a stable, consistent way for application programs (and users) to communicate with the hardware without having to know all the details of the hardware (such as which brand/model of hard disk or printer is attached).

One can categorize OS's based upon the kinds of computers they control and the kinds of applications they support. Indeed, we can identify four broad classes:

Now we answer, in somewhat more detail, the question raised earlier: What does an operating system do? We can identify at least six categories of tasks: