Computer terminal
From Wikipedia, the free encyclopedia
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. Typically it provides a text terminal interface over a serial line.
Contents |
[edit] Historical
Early user terminals connected to computers were generally electromechanical teleprinters (TTYs), such as the model 33 Teletype. However these were too slow for most production uses. By the early 1970s, many in the computer industry realized that an affordable video data entry terminal could supplant the then ubiquitous punch 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.
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 line, often using the RS-232 serial interface. IBM systems communicated over a coaxial cable using IBM's SNA protocol.
Later, so called intelligent terminals were introduced, such as the VT52 and VT100 made by DEC, both 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. Notable non-VT100 computer terminal types include the IBM 3270, various Wyse models (whose Wyse 60 was a best-seller—many are still in use), and the Tektronix 4014, but during the late 1970's there were dozens of manufacturers of terminals, many of which had incompatible command sequences. In the 1970s and early 1980s, the most common manufacturers were DEC, Wyse, Televideo, IBM, Lear-Siegler and Heath.
While early IBM PCs had single color green screens, these were not terminals. The screen of a PC did not contain any character generation hardware; all video signals and video formatting was generated by the video display card in the PC. With suitable terminal 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.
[edit] Graphical terminals
Most terminals today are GUI-based, and can show a picture on the screen. A graphical client typically uses a protocol like RDP for Microsoft Windows, or X11 for Unix-terminals. The bandwidth needed depends on the protocol used, the resolution, and the colour depth.
The graphical terminals has taken over for the text based terminals most places, and in fact led to renewed interest in thin clients.
The X11 display system for Unix is built around a server/client architecture, and was one of the first possibilities for transporting graphical applications over a network, or later, the Internet.
[edit] Contemporary
- Further information: Text terminal
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.
[edit] Technical discussion
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 n last lines are visible. The input text is buffered until the Enter key is pressed, so the application receives a ready string of text. In this mode, the application needs not to 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 shells.
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. Unfortunately, the libraries, the databases and the terminal emulators themselves are too often buggy, so it is not unusual to see the display imperfect or garbled, or functional keys not working. Often it is necessary to hand-edit the terminfo definition to make a terminal emulator to work well. Perhaps things are the best with xterm, because it is the most used.
All this has led to little usability of many text-mode applications except when on console or in xterm.
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.
[edit] See also
- Terminal server
- IBM 3270 Classic corporate terminal for forms
- HP 2640 microprocessor based terminal which combined serial ASCII with block mode forms and labeled function keys
- Tektronix 4014 storage tube for vector graphics
- VT100 for a classic ASCII ANSI-standard video terminal
- Dumb terminal for a computer terminal that has limited functionality
- Text terminal for the general concept of serial computer interface
- Terminal emulator for an application program replacing a computer terminal
- Virtual console for a concept that permits multiple terminals on one hardware
- Computer console for a text output device for system administration messages