The shell and terminal

A shell is a user interface for access to an operating system’s services. Most often the user interacts with the shell using a command-line interface (CLI). The terminal is a program that opens a graphical window and lets you interact with the shell.

Background

Originally, a computer terminal was an electronic or electromechanical hardware device used for entering data into, and displaying data from, a computer or a computing system. The terminal of the first working programmable, fully automatic digital Turing-complete computer, the Z3 (1941), had a keyboard and a row of lamps to show results.1

Early computers where huge machines taking up a lot of space. Commonly a system consisted of multiple cabinets, for example one cabinet for the main processor unit, one or more cabinets for tape drives, one cabinet for each disk drive, one cabinet for a punched card reader and one cabinet for a high speed printer. In the below image, a Univac 9400 system (1967) consisting of multiple cabinets is shown.

A Univac 9400 mainframe computer data center on display in the Techikum29 museum.

A Univac 9400 mainframe computer data center on display in the Techikum29 museum.

Photograph by technikum29

Teletypewriter (TTY)

Early user terminals connected to computers were electromechanical teleprinters or teletypewriters (TeleTYpewriter, TTY). In the above image of the Univac 9400 system, the cabinet marked UNICAC 9400 is the main processor cabinet. The terminal is the machine looking like a huge typewriter placed on the desk to the left of the main processor cabinet. Another example of an early terminal is the Teletype Model 33 ASR (1963) shown below.

A model 33 ASR terminal from the Teletype Corporation on display at the Computer History Museum, Mountain View, California, USA.

A model 33 ASR terminal from the Teletype Corporation on display at the Computer History Museum, Mountain View, California, USA.

Photograph by Arnold Reinhold

Video display terminal

As technology improved, teleprinter terminals was replaced by video display terminals. One example of such a video display terminal is the DEC VT100 (1978) shown below.

A DEC VT100 terminal.

A DEC VT100 terminal.

Photograph by Jason Scott

Note that the DEC VT100 terminal shown above is not a computer. The DEC VT100 terminal was only used for input and output to and from a connected computer. In the below image DEC VT52 video terminal (1974) is connected to a PDP 11/55 computer (1975).

A DEC VT52 video terminal connected to a PDP 11/55 computer.

A DEC VT52 video terminal connected to a PDP 11/55 computer.

Photograph courtesy of House for Retired and Aged Computers

Terminal emulator

A terminal emulator is a program that emulates a video terminal within some other display architecture.2 Today, the term terminal is often used synonymously with a terminal emulator running a shell.