
A terminal emulator, or terminal application, is a
computer program
A computer program is a sequence or set of instructions in a programming language for a computer to Execution (computing), execute. It is one component of software, which also includes software documentation, documentation and other intangibl ...
that
emulates a video
terminal within some other display architecture. Though typically synonymous with a
shell
Shell may refer to:
Architecture and design
* Shell (structure), a thin structure
** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses
Science Biology
* Seashell, a hard outer layer of a marine ani ...
or
text terminal
A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. Most early computers only had a front panel to input or display ...
, the term ''terminal'' covers all remote terminals, including graphical interfaces. A terminal emulator inside a
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
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 interface
A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
s (CLI) and
text user interface
In computing, text-based user interfaces (TUI) (alternately terminal user interfaces, to reflect a dependence upon the properties of computer terminals and not just text), is a retronym describing a type of user interface (UI) common as an ear ...
(TUI) applications. These may be running either on the same machine or on a different one via
telnet
Telnet (sometimes stylized TELNET) is a client-server application protocol that provides access to virtual terminals of remote systems on local area networks or the Internet. It is a protocol for bidirectional 8-bit communications. Its main ...
,
ssh,
dial-up
Dial-up Internet access is a form of Internet access that uses the facilities of the public switched telephone network (PSTN) to establish a connection to an Internet service provider (ISP) by dialing a telephone number on a conventional telepho ...
, or over a direct
serial connection. On
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
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 that includes
ECMA-48
ANSI escape sequences are a standard for in-band signaling to control cursor location, color, font styling, and other options on video text terminals and terminal emulators. Certain sequences of bytes, most starting with an ASCII escape cha ...
,
ANSI X3.64, and
ISO/IEC 6429.
Background
In the early days of computing, with the advent of interactive computing, the prevailing model involved a central computer connected to multiple terminals. This configuration, known as the centralized or mainframe model, featured a powerful central computer that performed all the processing tasks, while
terminals served as input/output devices for users to interact with the system. These systems were initially character based.
Character-oriented terminals
Emulators
When personal computers became ubiquitous in the 1980s, they offered the option of running software on the user's personal computer, providing an opportunity to replace the expensive and space consuming hardware terminals with something that had additional functions. Immediately software became available, that could emulate the functions of the hardware terminals on a PC. Examples of such software for
DOS
DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
were
Telix
Telix is a telecommunications program originally written for DOS by Colin Sampaleanu and released in 1986.
On October 10, 1988 in the release note for Telix 3.10, Sampaleanu announced the creation of 'Exis Inc.'; name used to develop the softwa ...
or Telemate, which was published in 1988 and could emulate a DEC VT102 terminal.
Workstation
A workstation is a special computer designed for technical or computational science, scientific applications. Intended primarily to be used by a single user, they are commonly connected to a local area network and run multi-user operating syste ...
s, usually running versions of
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
, also became common in the 1980s. Unix systems usually provided access to the
command line
A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
with locally-attached or dial-up terminals. Unix workstations were designed to be used primarily through a
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
(GUI); to provide access to the command line, the GUI included terminal emulator applications that behaved like locally-attached terminals.
During the 1990s, new operating systems like
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
and
OS/2
OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
arrived, providing the technical background for more terminal emulators lik
Telix for Windows ZOC for OS/2, or
PuTTY
PuTTY () is a free and open-source terminal emulator, serial console and network file transfer application. It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection. It can also connect to a se ...
, which was initially released for Windows in 1998 and which (together with its derivates) is still one a very popular choice to this day.
Through the
success of Linux, especially running on data centers and cloud servers, the necessity of accessing remote computers through character based terminals remains. This is evident in the fact, that today lists of terminal emulators that could serve as alternative to the aforementioned
PuTTY
PuTTY () is a free and open-source terminal emulator, serial console and network file transfer application. It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection. It can also connect to a se ...
offers over 100 alternatives.
Examples of terminals emulated
Many terminal emulators have been developed for physical hardware terminals such as
VT52
The VT50 is a CRT-based computer terminal that was introduced by Digital Equipment Corporation (DEC) in July 1974. It provided a display with 12 rows and 80 columns of upper-case text, and used an expanded set of control characters and forwar ...
,
VT100
The VT100 is a video terminal, introduced in August 1978 by Digital Equipment Corporation (DEC). It was one of the first terminals to support ANSI escape codes for cursor control and other tasks, and added a number of extended codes for special ...
,
VT220
The VT200 series is a family of computer terminals introduced by Digital Equipment Corporation (DEC) in November 1983. The VT220 was the basic version, a text-only version with multi-lingual capabilities. The VT240 added monochrome ReGIS vecto ...
,
VT320
The VT320 is an ANSI standard computer terminal introduced by Digital Equipment Corporation (DEC) in 1987. The VT320 is the text-only version, while the VT330 adds monochrome ReGIS, Sixel and Tektronix 4010 graphics, and the VT340 adds color ...
,
IBM 3270/8/9/E,
IBM 5250,
IBM 3179G,
Data General
Data General Corporation was an early minicomputer firm formed in 1968. Three of the four founders were former employees of Digital Equipment Corporation (DEC).
Their first product, 1969's Data General Nova, was a 16-bit minicomputer intended to ...
D211,
Hewlett-Packard
The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company. It was founded by Bill Hewlett and David Packard in 1939 in a one-car garage in Palo Alto, California ...
HP700/92, Sperry/Unisys 2000-series
UTS60, Burroughs/Unisys A-series T27/TD830/ET1100,
ADDS ViewPoint, AT386,
Siemens Nixdorf (SNI) 97801,
Televideo 925, and
Wyse 50/60.
Some terminal emulators, such as
xterm
xterm is the standard terminal emulator for the X Window System. It allows users to run programs which require a command-line interface.
If no particular program is specified, xterm runs the user's Unix shell, shell. An X display device, dis ...
, implement additional features not present in the emulated terminal.
Additionally, programs have been developed to emulate assorted
system console
A computer terminal is an electronic or electromechanical computer hardware, hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. Most early computers only had a front panel to ...
"terminals" such as the
Sun workstation console and the
Linux console.
Finally, some emulators simply refer to a set of standards, such as the standards for
ANSI escape code
ANSI escape sequences are a standard for in-band signaling to control cursor location, color, font styling, and other options on video text terminals and terminal emulators. Certain sequences of bytes, most starting with an Escape character#ASC ...
s.
Such programs are available on many platforms, including
DOS
DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
,
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
systems including
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
,
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, and embedded operating systems found in cellphones and industrial hardware.
Implementation details
Unix-like systems
In the past,
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
and
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
systems used serial port devices such as
RS-232
In telecommunications, RS-232 or Recommended Standard 232 is a standard introduced in 1960 for serial communication transmission of data. It formally defines signals connecting between a ''DTE'' (''data terminal equipment'') such as a compu ...
ports, and provided
device file
In Unix-like operating systems, a device file, device node, or special file is an interface to a device driver that appears in a file system as if it were an ordinary file. There are also special files in DOS, OS/2, and Windows. These s ...
s for them.
With terminal emulators these device files are themselves emulated by a pair of
pseudoterminal devices. These in turn emulate a physical port/connection to the host computing endpoint – hardware provided by operating system APIs, or software such as
rlogin
The Berkeley r-commands are a suite of computer programs designed to enable users of one Unix system to log in or issue commands to another Unix computer via TCP/IP computer network. The r-commands were developed in 1982 by the Computer System ...
,
telnet
Telnet (sometimes stylized TELNET) is a client-server application protocol that provides access to virtual terminals of remote systems on local area networks or the Internet. It is a protocol for bidirectional 8-bit communications. Its main ...
or
SSH, among others.
In Linux systems, example, these would be (for the master side) and (for the slave side) pseudoterminal devices respectively.
There are also special
virtual console
The Virtual Console was a line of downloadable retro video games for Nintendo's Wii and Wii U home video game consoles and the Nintendo 3DS family of handheld systems. The Virtual Console lineup consisted of titles originally released on pa ...
files like
/dev/console
. In text mode, writing to the file displays text on the virtual console and reading from the file returns text the user writes to the virtual console. As with other
text terminal
A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. Most early computers only had a front panel to input or display ...
s, there are also special
escape sequence
In computer science, an escape sequence is a combination of characters that has a meaning other than the literal characters contained therein; it is marked by one or more preceding (and possibly terminating) characters.
Examples
* In C and ma ...
s,
control character
In computing and telecommunications, a control character or non-printing character (NPC) is a code point in a character encoding, character set that does not represent a written Character (computing), character or symbol. They are used as in-ba ...
s and
functions that a program can use, most easily via a library such as ''
ncurses''. For more complex operations, the programs can use console and terminal special ''
ioctl
In computing, ioctl (an abbreviation of input/output control) is a system call for device-specific input/output operations and other operations which cannot be expressed by regular file semantics. It takes a parameter specifying a request code; ...
'' system calls. One can compare devices using the patterns vcs ("virtual console screen") and vcsa ("virtual console screen with attributes") such as
/dev/vcs1
and
/dev/vcsa1
.
Some terminal emulators also include escape sequences for configuring the behavior of the terminal to facilitate good interoperation between the terminal and programs running inside of it, for example to configure
paste bracketing.
The virtual consoles can be configured in the file
/etc/inittab
read by ''
init
In Unix-based computer operating systems, init (short for ''initialization'') is the first process started during booting of the operating system. Init is a daemon process that continues running until the system is shut down. It is the direc ...
''—typically it starts the text mode
login
In computer security, logging in (or logging on, signing in, or signing on) is the process by which an individual gains access to a computer system or program by identifying and authenticating themselves.
Typically, user credential ...
process ''
getty'' for several virtual consoles.
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
can be configured in
/etc/inittab
or by an
X display manager. A number of
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
distributions use
systemd
systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manage ...
instead of
init
In Unix-based computer operating systems, init (short for ''initialization'') is the first process started during booting of the operating system. Init is a daemon process that continues running until the system is shut down. It is the direc ...
, which also allows virtual console configuration.
CLI tools
Typical Linux system programs used to access the virtual consoles include:
* to switch the current virtual console
* to run a program on a new virtual console
* to close a currently unused virtual console
Local echo
Terminal emulators may implement a
local echo function, which may
erroneously be named "
half-duplex
A duplex communication system is a point-to-point system composed of two or more connected parties or devices that can communicate with one another in both directions. Duplex systems are employed in many communications networks, either to allow ...
", or still slightly incorrectly "echoplex" (which is formally an
error detection
In information theory and coding theory with applications in computer science and telecommunications, error detection and correction (EDAC) or error control are techniques that enable reliable delivery of digital data over unreliable communi ...
mechanism rather than an input display option).
Line-at-a-time mode/Local editing
Terminal emulators may implement local editing, also known as "line-at-a-time mode". This is also mistakenly referred to as "
half-duplex
A duplex communication system is a point-to-point system composed of two or more connected parties or devices that can communicate with one another in both directions. Duplex systems are employed in many communications networks, either to allow ...
". In this mode, the terminal emulator only sends complete lines of input to the host system. The user enters and edits a line, but it is held locally within the terminal emulator as it is being edited. It is not transmitted until the user signals its completion, usually with the key on the keyboard or a "send" button of some sort in the user interface. At that point, the entire line is transmitted. Line-at-a-time mode implies local echo, since otherwise the user will not be able to see the line as it is being edited and constructed. However, line-at-a-time mode is independent of echo mode and does not ''require'' local echo. When entering a password, for example, line-at-a-time entry with local editing is possible, but local echo is turned off (otherwise the password would be displayed).
The complexities of line-at-a-time mode are exemplified by the line-at-a-time mode option in the telnet protocol. To implement it correctly, the ''Network Virtual Terminal'' implementation provided by the terminal emulator program must be capable of recognizing and properly dealing with "interrupt" and "abort" events that arrive in the middle of locally editing a line.
Synchronous terminals
In asynchronous terminals data can flow in any direction at any time. In synchronous terminals a protocol controls who may send data when.
IBM 3270
The IBM 3270 is a family of Block-oriented terminal, block oriented display and printer computer terminals introduced by IBM in 1971
and normally used to communicate with IBM mainframes. The 3270 was the successor to the IBM 2260 display ter ...
-based terminals used with
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
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.
Terminal emulators that simulate the 3270 protocol 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
IBM CICS (Customer Information Control System) is a family of mixed-language application servers that provide online business transaction management, transaction management and connectivity for applications on IBM mainframe systems under z/OS ...
.
Other examples of synchronous terminals include the
IBM 5250,
ICL 7561,
Honeywell Bull VIP7800 and
Hewlett-Packard
The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company. It was founded by Bill Hewlett and David Packard in 1939 in a one-car garage in Palo Alto, California ...
700/92.
Virtual consoles
Virtual console
The Virtual Console was a line of downloadable retro video games for Nintendo's Wii and Wii U home video game consoles and the Nintendo 3DS family of handheld systems. The Virtual Console lineup consisted of titles originally released on pa ...
s, also called virtual terminals, are emulated
text terminals, using the keyboard and monitor of a personal computer or workstation. The word "text" is key since virtual consoles are not GUI terminals and they do not run inside a graphical interface. Virtual consoles are found on most
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
systems. They are primarily used to access and interact with servers, without using a graphical desktop environment.
See also
*
Binary Synchronous Communications
*
List of terminal emulators
This is a list of notable terminal emulators. Most used terminal emulators on Linux and Unix-like systems are GNOME Terminal on GNOME and GTK-based environments, Konsole on KDE, and xfce4-terminal on Xfce as well as xterm.
List
See also
* We ...
*
Online service provider
An online service provider (OSP) can, for example, be an Internet service provider, an email provider, a news provider (press), an entertainment provider (music, movies), a search engine, an e-commerce site, an online banking site, a health site, ...
*
Serial interface
*
Terminal multiplexer
Notes
References
*
*
*
*
*
External links
Terminal Window Definitionby The Linux Information Project (LINFO)
VTTEST – VT100/VT220/XTerm test utility A terminal test utility by Thomas E. Dickey
{{Terminal emulator
User interfaces
Technical communication tools
Bulletin board systems