[1][2] Operating systems provide various services to their users, including file management, process management (running and terminating applications), batch processing, and operating system monitoring and configuration.
Initially available on multi-user mainframes, which provided text-based UIs for each active user simultaneously by means of a text terminal connected to the mainframe via serial line or modem, remote access has extended to Unix-like systems and Microsoft Windows.
Early interactive systems provided a simple command-line interpreter as part of the resident monitor.
In 1964, for the Multics operating system, Louis Pouzin conceived the idea of "using commands somehow like a programming language," and coined the term shell to describe it.
The graphical shell first appeared in Douglas Engelbart’s NLS system, demonstrated in December, 1968 at the Fall Joint Computer Conference in San Francisco, in what has been called The Mother of All Demos.
For example, a teletypewriter can send codes representing keystrokes to a command interpreter program running on the computer; the command interpreter parses the sequence of keystrokes and responds with an error message if it cannot recognize the sequence of characters, or it may carry out some other program action such as loading an application program, listing files, logging in a user and many others.
Since the commands to the program are made of the same keystrokes as the data being sent to a remote computer, some means of distinguishing the two are required.
The program becomes modal, switching between interpreting commands from the keyboard or passing keystrokes on as data to be processed.
A data file can contain sequences of commands which the CLI can be made to follow as if typed in by a user.
[13] A command-line interpreter may offer a history function, so that the user can recall earlier commands issued to the system and repeat them, possibly with some editing.
Graphical shells may be included with desktop environments or come separately, even as a set of loosely coupled utilities.
Most graphical user interfaces develop the metaphor of an "electronic desktop", where data files are represented as if they were paper documents on a desk, and application programs similarly have graphical representations instead of being invoked by command names.
In the case of macOS, Quartz Compositor acts as the windowing system, and the shell consists of the Finder,[14] the Dock,[14] SystemUIServer,[14] and Mission Control.
Windows Shell provides desktop environment, start menu, and task bar, as well as a graphical user interface for accessing the file management functions of the operating system.
Interoperability programmes and purpose-designed software lets Windows users use equivalents of many of the various Unix-based GUIs discussed below, as well as Macintosh.