A terminal emulator is a program which emulates a text terminal (TTY). It may connect to the local computer or a remote computer over a network, in which case it connects as a 'pseudo terminal' or pty, or it may communicate with another computer through a serial line exactly as a real text terminal would. Most commonly, terminal emulators emulate the VT100 command set or some variant thereof.

Before the advent of personal computers, most access to computer systems was through the use of terminals. Originally, these terminals simply displayed transmitted text and transmitted typed text, but over the years they developed a comprehensive set of extended capabilities, for example, an addressable cursor and arbitrarily addressible character cells. Programs running on the main computer then evolved to depend on these capabilities and their interfaces.

Major changes came in the advent of usable, widely-distributed microcomputers. From early on, it became necessary for users of microcomputers to connect to and use larger, more powerful computers. The easiest way to do this was simply to emulate a terminal. That way, the larger computer didn't need to be changed, there just needed to be a program on the smaller computer to connect to the larger computer. Very quickly, terminal emulators became available for most common microcomputers.

The second major change began with the introduction of the graphical user interface. Concurrently, the time-sharing model in high-end computing was declining in favour of the workstation model. These workstation machines usually had a local, native GUI as their primary interface. Often, the underlying operating system changed between the workstations and the preceding centralised computers, but the Unix operating system survived, due in part to the X Window System. A major problem with adding a GUI to a Unix system was that every preexisting interactive Unix program expected to be running on a terminal. So rather than rewrite a decade's worth of software to interface directly with the GUI, terminal emulators were written to run command line software.

The first and most important such terminal emulator is xterm, famously predating the X server itself. Other Unix/X11 terminal emulators that are commonly used are, in rough chronological order: rxvt, dtterm, aterm, Eterm, Konsole, and gnome-terminal. Terminal emulators that run on other platforms and attach to Unix systems through telnet or ssh include Tera Term and PuTTY.

Terminal emulators are now far more common than the TTYs they emulate. Graphical X terminals and cheap PCs running GNU/Linux or BSD have replaced the older text terminals, but the Unix command line interface remains vital.

A related concept found in most modern Unix-like kernels is the virtual terminal.

This writeup is copyright 2004 D.G. Roberge and is released under the Creative Commons Attribution-NonCommercial-ShareAlike licence. Details can be found at http://creativecommons.org/licenses/by-nc-sa/2.0/ .