A terminal emulator, or terminal application, is a
computer program that
emulates a video
terminal
Terminal may refer to:
Computing Hardware
* Terminal (electronics), a device for joining electrical circuits together
* Terminal (telecommunication), a device communicating over a line
* Computer terminal, a set of primary input and output devi ...
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
** Thin-shell structure
Science Biology
* Seashell, a hard o ...
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 (TUI) applications. These may be running either on the same machine or on a different one via
telnet
Telnet is an application protocol used on the Internet or local area network to provide a bidirectional interactive text-oriented communication facility using a virtual terminal connection. User data is interspersed in-band with Telnet control ...
,
ssh,
dial-up, or over a direct
serial connection. 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
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 man ...
for controlling color,
cursor
Cursor may refer to:
* Cursor (user interface), an indicator used to show the current position for user interaction on a computer monitor or other display device
* Cursor (databases), a control structure that enables traversal over the records in ...
position, etc. Examples include the family of terminal control sequence standards known as
ECMA-48,
ANSI X3.64
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 charac ...
or
ISO/IEC 6429.
History
Computer terminals
Emulators
Local echo
Terminal emulators may implement a
local echo
In telecommunications, echo is the local display of data, either ''initially'' as it is locally sourced and sent, or ''finally'' as a copy of it is received back from a remote destination. Local echo is where the ''local'' sending equipment display ...
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 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". 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-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.
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 transaction management and connectivity for applications on IBM mainframe systems under z/OS and z/VSE.
CICS family products ...
.
Other examples of synchronous terminals include the
IBM 5250,
ICL 7561,
Honeywell Bull
Bull SAS (also known as Groupe Bull, Bull Information Systems, or simply Bull) is a French computer company headquartered in Les Clayes-sous-Bois, in the western suburbs of Paris. The company has also been known at various times as Bull General E ...
VIP7800 and
Hewlett-Packard 700/92.
Virtual consoles
Virtual consoles, 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 systems. They are primarily used to access and interact with servers, without using a graphical desktop environment.
Examples of terminals emulated
Many terminal emulators have been developed for terminals such as
VT52
The VT50 was a CRT-based computer terminal 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 forward-only scro ...
,
VT100,
VT220
The VT220 is a computer terminal introduced by Digital Equipment Corporation (DEC) in November 1983. The VT240 added monochrome ReGIS vector graphics support to the base model, while the VT241 did the same in color. The 200 series replaced the s ...
,
VT320,
IBM 3270/8/9/E,
IBM 5250,
IBM 3179G,
Data General
Data General Corporation was one of the first minicomputer firms of the late 1960s. 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 ...
D211,
Hewlett Packard HP700/92, Sperry/Unisys 2000-series
UTS60, Burroughs/Unisys A-series T27/TD830/ET1100,
ADDS ViewPoint,
Sun
The Sun is the star at the center of the Solar System. It is a nearly perfect ball of hot plasma, heated to incandescence by nuclear fusion reactions in its core. The Sun radiates this energy mainly as light, ultraviolet, and infrared radi ...
console,
QNX, AT386, SCO-ANSI, SNI 97801,
Televideo, and
Wyse 50/60. Additionally, programs have been developed to emulate other terminal emulators such as
xterm and assorted console terminals (e.g., for
Linux). Finally, some emulators simply refer to a standard, such as
ANSI
The American National Standards Institute (ANSI ) is a private non-profit organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States. The organi ...
. Such programs are available on many platforms ranging from
DOS and
Unix to
Windows and
macOS to embedded operating systems found in cellphones and industrial hardware.
Implementation details
Unix-like systems
In the past,
Unix and
Unix-like systems used serial port devices such as
RS-232 ports, and provided
device files for them.
With terminal emulators those device files are emulated by using a pair of
pseudoterminal
In some operating systems, including Unix and Linux, a pseudoterminal, pseudotty, or PTY is a pair of pseudo-device endpoints (files) which establish asynchronous, bidirectional communication ( IPC) channel (with two ports) between two or more pr ...
devices. This pair is used to emulate a physical port/connection to the host computing endpoint - computer's hardware provided by operating system APIs, some other software like
rlogin,
telnet
Telnet is an application protocol used on the Internet or local area network to provide a bidirectional interactive text-oriented communication facility using a virtual terminal connection. User data is interspersed in-band with Telnet control ...
or
SSH or else.
For example, in Linux systems these would be (for the master side) and (for the slave side) pseudoterminal devices respectively.
There are also special
virtual console 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 terminals, there are also special
escape sequences
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 man ...
,
control characters 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'' 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
Bracketed paste (sometimes referred to as paste bracketing
), is a mode of some terminal emulators which allows programs running in the terminal to treat pasted text differently from text typed normally.
History
The bracketed paste feature was ...
.
The virtual consoles can be configured in the file
/etc/inittab
read by ''
init'' -- typically it starts the text mode
login 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 provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wi ...
can be configured in
/etc/inittab
or by an
X display manager. A number of
Linux distributions use
systemd instead of
init, 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
System loading
The program ''
startx
StartX is a non-profit startup accelerator and founder community associated with Stanford University.
It was founded by Cameron Teitelman and Dan Ha in 2011.
It began as a spin-off of Stanford Student Enterprises, the non-profit financial arm ...
'' starts the
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 provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wi ...
on a new virtual console. There are also other graphical programs that can start from the console (e.g.
LinuxTV The LinuxTV project is an informal group of volunteers who develop software regarding digital television for the Linux kernel-based operating systems. The community develops and maintains the Digital Video Broadcasting (DVB) driver subsystem which i ...
and
MPlayer etc.)
See also
*
Binary Synchronous Communications
Binary Synchronous Communication (BSC or Bisync) is an IBM character-oriented, half-duplex link protocol, announced in 1967 after the introduction of System/360. It replaced the synchronous transmit-receive (STR) protocol used with second gener ...
*
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.
Character-oriente ...
*
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
In computing, a serial port is a serial communication interface through which information transfers in or out sequentially one bit at a time. This is in contrast to a parallel port, which communicates multiple bits simultaneously in parallel. ...
*
Terminal multiplexer
A terminal multiplexer is a software application that can be used to multiplex several separate pseudoterminal-based login sessions inside a single terminal display, terminal emulator window, PC/workstation system console, or remote login session ...
Notes
References
*
*
*
*
*
External links
*
Terminal Window Definitionby The Linux Information Project (LINFO)
{{Terminal emulator
User interfaces
Technical communication tools
Bulletin board systems