Text console

A computer terminal is an electronic or electromechanical hardware device that is used for entering data into, and displaying data from, a computer or a computing system. Early terminals were inexpensive devices but very slow compared to punched cards or paper tape for input, but as the technology improved and video displays were introduced, terminals pushed these older forms of interaction from the industry. A related development was timesharing systems, which evolved in parallel and made up for any inefficiencies of the user's typing ability with the ability to support multiple users on the same machine, each at their own terminal.

The function of a terminal is confined to display and input of data; a device with significant local programmable data processing capability may be called a "smart terminal" or fat client. A terminal that depends on the host computer for its processing power is called a dumb terminal or thin client. A personal computer can run terminal emulator software that replicates the function of a terminal, sometimes allowing concurrent use of local programs and access to a distant terminal host system.

Historical


Early user terminals connected to computers were electromechanical teleprinters or teletypewriters (TeleTYpewriter, TTY), such as the Teletype Model 33 ASR, originally used for telegraphy or the Friden Flexowriter. Later printing terminals such as the DECwriter were developed. However printing terminals were limited by the speed at which paper could be printed, and for interactive use the paper record was unnecessary.

By the early 1970s, many in the computer industry realized that an affordable video data entry terminal could supplant the ubiquitous punched cards and permit new uses for computers that would be more interactive. The problem was that the amount of memory needed to store the information on a page of text was comparable to the memory in low end minicomputers then in use. Displaying the information at video speeds was also a challenge and the necessary control logic took up a rack worth of pre-integrated circuit electronics. One company announced plans to build a video terminal for $15,000 and attracted a large backlog of orders, but folded when their engineering plans, which included fabricating their own ICs, proved too ambitious. Another approach involved the use of the storage tube, a specialized CRT developed by Tektronix that retained information written on it without the need to refresh.

The Datapoint 3300 from Computer Terminal Corporation was announced in 1967 and shipped in 1969, making it one of the earliest stand-alone display-based terminals. It solved the memory space issue mentioned above by using a digital shift-register design, and using only 72 columns rather than the later more common choice of 80.

Early video computer displays were sometimes nicknamed "Glass TTYs" and used individual logic gates, with no CPU. One of the motivations for development of the microprocessor was to simplify and reduce the electronics required in a terminal. Most terminals were connected to mainframe computers and often had a green or amber screen. Typically terminals communicate with the computer via a serial port, often using an RS-232 or a current loop serial interface. IBM systems communicated over a coaxial cable using IBM's SNA protocol. In fact, the instruction design for the Intel 8008 was originally conceived at Computer Terminal Corporation as the processor for the Datapoint 2200.


Later, so-called "intelligent" terminals were introduced, such as the IBM 3270, and the VT52 and VT100 made by DEC, all of which are still widely emulated in software. These were called "intelligent" because they had the capability of interpreting escape sequences to position the cursor and control the display. Some other notable computer terminal types are the various Wyse models (whose Wyse 60 was a best-seller—many are still in use), and the Tektronix 4014.

During the late 1970s and early 1980s, there were dozens of manufacturers of terminals including DEC, Wyse, Televideo, Hewlett Packard, IBM, Lear-Siegler and Heath, many of which had incompatible command sequences.

While early IBM PCs had single color green screens, these screens were not terminals. The screen of a PC did not contain any character generation hardware; all video signals and video formatting were generated by the video display card in the PC. With suitable software PCs could, however, emulate a terminal, if connected to a mainframe computer. Eventually microprocessor-based personal computers greatly reduced the market demand for terminals. Today, most PC telnet clients provide emulation of the most common terminal—the DEC VT100, using the ANSI escape code standard X3.64.

Text terminals

A text terminal, or often just terminal (sometimes text console) is a serial computer interface for text entry and display. Information is presented as an array of pre-selected formed characters. When such devices use a video display such as a cathode-ray tube, they are called a "video display unit" or "visual display unit" (VDU) or "video display terminal" (VDT).

Originally text terminals were electronic computer terminals connected to computers by a serial port, but later computers have built-in system consoles, and terminal emulator programs that work in a graphical desktop environment. Graphical displays have not supplanted the text terminal, nor are they intended to, as the latter is convenient for computer programmers and appropriate for command-line interfaces and text user interfaces; even within graphical desktop environments, terminal emulator programs are available for those purposes. Most programming languages support standard streams for inputting and printing text, and it is simple and common to connect the streams to a text terminal.


Types of text terminals

The System console is a text terminal used to operate a computer. Modern computers have a built-in keyboard and display for the console. Some Unix-like operating systems such as Linux, FreeBSD and Mac OS X have virtual consoles to provide several text terminals on a single computer.

A terminal emulator is a computer program in a graphical windowing system that lets the user operate a text terminal in a window. This lets applications for text terminals run under a modern graphical user interface. Popular terminal emulators include xterm and rxvt.

There are also specialized terminal emulators such as those used with modems. PuTTY is a terminal emulator and ssh client.

Applications running on a text terminal

The fundamental type of application running on a text terminal is a command line interpreter or shell, which prompts for commands from the user and executes each command after a press of Enter. This includes Unix shells and some interactive programming environments. In a shell, most of the commands are small applications themselves.

Another important application type is that of the text editor. A text editor occupies the full area of display, displays one or more text documents, and allows the user to edit the documents. The text editor has, for many uses, been replaced by the word processor, which usually provides rich formatting features that the text editor lacks. The first word processors used text to communicate the structure of the document, but later word processors operate in a graphical environment and provide a WYSIWYG simulation of the formatted output.

Programs such as Telix and Minicom control a modem and the local terminal to let the user interact with remote servers. On the Internet, telnet and ssh work similarly.

Programming interface

Main articles: POSIX terminal interface and Seventh Edition Unix terminal interface

In the simplest form, a text terminal is like a file. Writing to the file displays the text and reading from the file produces what the user enters. In unix-like operating systems, there are several character special files that correspond to available text terminals.

For other operations, there are special escape sequences, control characters and termios functions that a program can use, most easily via a library such as ncurses. For more complex operations, the programs can use terminal specific ioctl system calls.

Technical discussion

Main article: terminal capabilities

For an application, the simplest way to use a terminal is to simply write and read text strings to and from it sequentially. The output text is scrolled, so that only the last several lines (typically 24) are visible. Unix systems typically buffer the input text until the Enter key is pressed, so the application receives a ready string of text. In this mode, the application need not know much about the terminal.

For many interactive applications this is not sufficient. One of the common enhancements is command line editing (assisted with such libraries as readline); it also may give access to command history. This is very helpful for various interactive command line interpreters.

Even more advanced interactivity is provided with full-screen applications. Those applications completely control the screen layout; also they respond to key-pressing immediately. This mode is very useful for text editors, file managers and web browsers. In addition, such programs control the color and brightness of text on the screen, and decorate it with underline, blinking and special characters (e.g. box drawing characters).

To achieve all this, the application must deal not only with plain text strings, but also with control characters and escape sequences, which allow to move cursor to an arbitrary position, to clear portions of the screen, change colors and display special characters — and also respond to function keys.

The great problem here is that there are so many different terminals and terminal emulators, each with its own set of escape sequences. In order to overcome this, special libraries (such as curses) have been created, together with terminal description databases, such as Termcap and Terminfo.

In recent years, the general switching of users to GUI has lessened the attention paid to terminal-handling libraries and to terminal emulation, and almost stalled the debugging efforts.

Dumb terminal

The specific meaning of the term dumb terminal can vary depending on the context in which it is used.

In the context of traditional computer terminals that communicate over a serial RS-232 connection, dumb terminals are those that can interpret a limited number of control codes (CR, LF, etc.) but do not have the ability to process special escape sequences that perform functions such as clearing a line, clearing the screen, or controlling cursor position. In this context dumb terminals are sometimes dubbed glass Teletypes, for they essentially have the same limited functionality as does a mechanical Teletype. This type of dumb terminal is still supported on modern Unix-like systems by setting the environment variable TERM to dumb. Smart or intelligent terminals are those that also have the ability to process escape sequences, in particular the VT52, VT100 or ANSI escape sequences.

In the broader context that includes all forms of keyboard/screen computer communication devices, including personal computers, diskless workstations, network computers, thin clients, and X terminals, the term dumb terminal is sometimes used to refer to any type of traditional computer terminal that communicates serially over a RS-232 connection that does not locally process data or execute user programs.

The term dumb terminal sometimes also refers to public computer terminals that are limited to monochrome text-only capabilities, or to terminals that transmit each character as it is typed rather than waiting until it is polled by a host computer.

Graphical terminals

A graphical terminal can display images as well as text. Graphical terminals are divided into vector-mode terminals, and raster mode.

A vector-mode display directly draws lines on the face of a cathode-ray tube under control of the host computer system. The lines are continuously formed, but since the speed of electronics is limited, the number of concurrent lines that can be displayed at one time is limited. Vector-mode displays were historically important but are no longer used. Practically all modern graphic displays are raster-mode, descended from the picture scanning techniques used for television, in which the visual elements are a rectangular array of pixels. Since the raster image is only perceptible to the human eye as a whole for a very short time, the raster must be refreshed many times per second to give the appearance of a persistent display. The electronic demands of refreshing display memory meant that graphic terminals were developed much later than text terminals, and initially cost much more.

Most terminals today are graphical, that is, they can show images on the screen. The modern term for graphical terminal is "thin client". A thin client typically uses a protocol like X11 for Unix-terminals, or RDP for Microsoft Windows. The bandwidth needed depends on the protocol used, the resolution, and the color depth.

Modern graphic terminals allow display of images in color, and of text in varying sizes, colors, and fonts (type faces).

AlphaWindows

Main article: AlphaWindows

In the early 1990s an industry consortium attempted to define a standard that would allow a single CRT screen to implement multiple windows, each of which was to behave as a distinct terminal. Unfortunately like I2O this suffered from being run as a closed standard: non-members were unable to obtain even minimal information and there was no realistic way a small company or independent developer could join the consortium. Possibly because of this the standard disappeared without trace.

Contemporary

Since the advent and subsequent popularization of the personal computer, few genuine hardware terminals are used to interface with computers today. Using the monitor and keyboard, modern operating systems like Linux and the BSD derivatives feature virtual consoles, which are mostly independent from the hardware used.

When using a graphical user interface (or GUI) like the X Window System, one's display is typically occupied by a collection of windows associated with various applications, rather than a single stream of text associated with a single process. In this case, one may use a terminal emulator application within the windowing environment. This arrangement permits terminal-like interaction with the computer (for running a command line interpreter, for example) without the need for a physical terminal device; it can even allow the running of multiple terminal emulators on the same device.

Emulation of terminals by computer programs

A terminal emulator is a piece of software that emulates a text terminal. In the past, before the widespread use of local area networking and broadband internet access, many computers would use a serial access program to communicate with other computers via telephone line or serial device.

When the first Macintosh was released, a program called MacTerminal was used to communicate with many computers, including the IBM PC.

Dec Terminal was one of the first terminal programs for the popular Altair.

The Win32 console on Windows does not emulate a physical terminal that supports escape sequences[1][dubious ] so SSH and Telnet programs (for logging in textually to remote computers) for Windows, including the Telnet program bundled with some versions of Windows, often incorporate their own code to process escape sequences. The terminal emulators on most Unix-like systems, such as, for example, xterm and Terminal, emulate physical terminals that support escape sequences

Modes

Terminals can operate in various modes, relating to when they send input typed by the user on the keyboard to the receiving system (whatever that may be):

character mode (a.k.a. character-at-a-time mode)
In this mode, typed input is sent immediately to the receiving system.[2]
line mode (a.k.a. line-at-a-time mode)
In this mode, the terminal provides a local line editing function, and sends an entire input line, after it has been locally edited, when the user presses a Return key.[2] A so-called line mode terminal operates solely in this mode.[3]
block mode (a.k.a. screen-at-a-time mode)
In this mode, the terminal provides a local full-screen data function. The user can enter input into multiple fields in a form on the screen (defined to the terminal by the receiving system), moving the cursor around the screen using keys such as Tab ]] and the arrow keys and performing editing functions locally using Insert]], Delete]], Backspace]] and so forth. The terminal sends only the completed form, consisting of all the data entered on the screen, to the receiving system when the user presses an Enter key.[4][5][2]

Note the distinction between the Return]] and the Enter]] keys. In some multiple-mode terminals, that can switch between modes, pressing the Enter key when not in block mode does not do the same thing as pressing the Return key. Whilst the Return key will cause an input line to be sent to the host in line-at-a-time mode, the Enter key will rather cause the terminal to transmit the contents of the character row where the cursor is currently positioned to the host, host-issued prompts and all.[4]

Different computer operating systems require different degrees of mode support when terminals are used as computer terminals. The POSIX terminal interface, as provided by Unix and POSIX-compliant operating systems, does not accommodate block-mode terminals at all, and only rarely requires the terminal itself to be in line-at-a-time mode, since the operating system is required to provide canonical input mode, where the terminal device driver in the operating system emulates local echo in the terminal, and performs line editing functions at the host end. Most usually, and especially so that the host system can support non-canonical input mode, terminals for POSIX-compliant systems are always in character-at-a-time mode. In contrast, IBM 3270 terminals connected to MVS systems are always required to be in block mode.[6][7][8][9]

See also

Computing portal

References

Sources used

External links

  • The Terminals Wiki, an encyclopedia of computer terminals.
  • Text Terminal HOWTO
  • The TTY demystified
  • Directive 1999/5/EC of the European Parliament and of the Council of 9 March 1999 on radio equipment and telecommunications terminal equipment and the mutual recognition of their conformity (R&TTE Directive).

This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.