A terminal emulator, terminal application, term, or tty for short, is a program that emulates a "dumb" video terminal within some other display architecture. Though typically synonymous with a command line shell or text terminal, the term terminal covers all remote terminals, including graphical interfaces. A terminal emulator inside a graphical user interface is often called a terminal window.
A terminal window allows the user access to a text terminal and all its applications such as command line interfaces (CLI) and text user interface applications. These may be running either on the same machine or on a different one via telnet, ssh, or dial-up. On Unix-like operating systems it is common to have one or more terminal windows connected to the local machine.
Terminals usually support a set of escape sequences for controlling color, cursor position, etc. Examples include the family of terminal control sequence standards known as ECMA-48, ANSI X3.64 or ISO/IEC 6429.
Early adopters of computer technology, such as banks, insurance companies, and governments, still make frequent use of terminal emulators. They typically have decades old applications running on mainframe computers. The old “dumb” video terminals used to access the mainframe are long since obsolete; however, applications on the mainframe are still in use. Quite often, terminal emulators are the only way a user can access applications running on these older machines.
On Unix-like systems, for an individual keypress received by the terminal or terminal emulator, it sends an individual code from the character set in use. Also, carriage return and line feed are distinct operations. In raw mode, text passes directly from the terminal or PTY (a device node that a program wishing to emulate a terminal binds to) to the TTY device. In cooked mode a number of changes are made as the data pass between the terminal or PTY and the TTY: The application gets complete lines of input at once neatly terminated with a line feed and can send just a linefeed when it wants a new line. Also, text typed is echoed back to the user. When a program is started, terminal is generally in cooked mode which allows easy input and output of text, but applications that want more control will often put the terminal into raw mode, or a slightly more processed rare mode. The individual characteristics of cooked mode can be turned on and off individually which may be needed for certain applications.
In asychronous terminals data can flow in any direction at any time. In synchronous terminals a protocol controls who may send data when. The IBM 3270-based terminals used with IBM mainframe computers are an example of synchronous terminals. They operate in an essentially "screen-at-a-time" mode (also known as block mode). Users can make numerous changes to a page, before submitting the updated screen to the remote machine as a single action. This paradigm can be surprising to those used to the more common asynchronous terminal behaviour, though in fact it is conceptually quite similar to the submission of HTTP forms on the Web.
Terminal emulators that simulate the original 3270 hardware terminal are available for most operating systems, for use both by those administering systems such as the z9, as well as those using the corresponding applications such as CICS.
Many terminal emulators have been developed, for terminals such as VT100, VT220, VT320, IBM 3270/8/9/E, IBM 5250, IBM 3179G, Data General D211, Hewlett Packard HP700/92, Sperry/Unisys 2000-series UTS60, Burroughs/Unisys A-series T27/TD830/ET1100, ADDS ViewPoint, Sun console, QNX, AT386, SCO-ANSI, SNI 97801, Televideo, and Wyse 50/60. Additionally, programs have been developed to emulate terminals which are themselves programs, such as xterm and assorted console terminals (e.g., for Linux). Finally, some emulations simply refer to a standard, such as ANSI. These programs are available on many platforms ranging from DOS and Unix to GUI operating systems such as Windows and Macs, to embedded operating systems found in cellphones and industrial hardware.
Under Microsoft Windows, programs that provide the remote-access form of terminal emulation include the built-in programs HyperTerminal (not included in Windows Vista) and Microsoft's telnet client, as well as third-party programs like PuTTY, AlphaCom, Poderosa, Terminator, TigerTerm, TN3270 Plus, Ericom Software PowerTerm InterConnect, z/Scope Express VT, Tera Term, SwitchTermJ, SecureCRT, Access*One, DynaComm, TinyTERM by Century Software and Attachmate Reflection [Indigo Terminal Emulator by Shadeblue Software]. For Windows CE and Windows Mobile there are products like MochaSoft, MobileVT, Access*One and NaurTech. MS-DOS examples include ProComm, Qmodem, Telemate, and Telix. A program called Crosstalk ran on both MS-DOS and CP/M.
A so-called "DOS box" or "Command prompt" is the Windows equivalent of a locally-connected terminal window (in fact, it is a Win32 console).
Mac OS X includes Terminal as its default terminal emulator for local access. There are a number of third-party terminal emulators for local access on Mac OS X, such as GLTerm, iTerm, MacTelnet, dataComet, and MacWise. ZTerm is a remote-access terminal for the Mac.