In order to perform the actions requested by the computer’s users, an operating system must be able to communicate with those users. The portion of an operating system that handles this communication is often called the user interface. Older user interfaces, called shells, communicated with users through textual messages using a keyboard and monitor screen.
More modern systems perform this task by means of a graphical user interface (GUI) in which objects to be manipulated, such as files and programs, are represented pictorially on the display as icons. These systems allow users to issue commands by using one of several common input devices. For example, a computer mouse, with one or more buttons, can be used to click or drag icons on the screen. In place of a mouse, special-purpose pointing devices or styluses are often used by graphic artists or on several types of handheld devices.
More recently, advances in fine-grained touch screens allow users to manipulate icons directly with their fingers. Whereas today’s GUIs use two dimensional image projection systems, three-dimensional interfaces that allow human users to communicate with computers by means of 3D projection systems, tactile sensory devices, and surround sound audio reproduction systems are subjects of current research.
Although an operating system’s user interface plays an important role in establishing a machine’s functionality, this framework merely acts as an intermediary between the computer’s user and the real heart of the operating system. This distinction between the user interface and the internal parts of the operating system is emphasized by the fact that some operating systems allow a user to select among different interfaces to obtain the most comfortable interaction for that particular user.
Users of the UNIX operating system, for example, can select among a variety of shells including the Bourne shell, the C shell, and the Korn shell, as