A terminal emulator, terminal application, term, or tty for short, is a program that emulates a 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.
Raw and cooked input/output
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 is bound 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, the 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 characteristics of cooked mode can be turned on and off individually which may be needed for certain applications.
Full article ▸