There are various conflicting definitions of "dumb terminal" but as time goes by, more and more terminals are called dumb. This document mainly covers text terminals which display only text on the screen. It might be titled "Dumb-Terminal-HOWTO" but in some magazines articles any terminal, no matter how smart, including ones which present a full graphical user interface (GUI), are called dumb. If all terminals are "dumb" then there is no point of prefixing the word "dumb" to terminal (except as a sales pitch to sell computers or the like in place of "smart" terminals). Due to the ambiguous meaning of "dumb terminal" it is not classified here as a type of terminal.
For a text terminal, a 2-way flow of information between the computer and the terminal takes place over the cable that connects them together. This flow is in ASCII bytes where each byte usually represents a character. Bytes typed at the keyboard go to the computer and most bytes from the computer are displayed on the terminal screen. Special bytes (or sequences of bytes) from the computer tell the terminal where to move the cursor to, what to erase, where to begin and end underlining and/or blinking and/or bold, etc. There are often hundreds of such special commands and many terminals can even change fonts.
The communication uses characters (letters) encoded using a code chart for the character set being used. Usually, the first 128 bytes out of 256 possible bytes use ASCII codes. Terminals for Unix-like systems, normally connect to computers via a cable running between the asynchronous serial ports (RS-232-C = EIA-232-D) of the host computer and terminal. Sometimes the connection is via modem or terminal server, etc.
Other names for text terminals are "serial terminal", "character-cell terminal", "ASCII/ANSI terminal", "asynchronous terminal", "data terminal", "video terminal" and "video display terminal" (VDT). In olden days "video display unit" (VDU) was used for terminals but strictly speaking, it excludes the keyboard.
"Block mode" was used exclusively by old IBM mainframe terminals but many modern terminals also have this capability (which is not used much). The characters you type are temporarily retained in the terminal memory (and may possibly be edited by a built-in editor at the terminal). Then when the send key (or the like) is pressed, a block of characters (sometimes just a line of characters) is sent to the computer all at once. Block mode (as of late 1998) is not supported by Linux. Block mode makes the terminal a block device (and not a character device). See section Block Mode.
To a limited degree some ASCII symbols can provide graphics on text terminals. One may form arrows <--- and draw boxes with _ and |. With special graphic character sets, even more is possible. None of these are really graphics terminals. However, the term "graphics terminal" is sometimes applied to all text-only terminals since text is a limited form of graphics.
There are two basic types of graphics displays: raster and vector (rarely used). Raster graphics (bit-mapped) puts dots on the screen by horizontal scan lines drawn by an electron beam (or by activating pixels or dots on a flat screen). Vector graphic displays use smart electronics to draw lines and curves with an electron beam that can move in any direction. Vector graphics draws high quality lines without zig-zags but is both rare and expensive. Raster graphics is almost universally used today. For PC's, images encoded in vector graphic format are sometimes used but they are translated to raster graphics format for display (with a drop in image quality).
Most of this document also applies to these. Most of these can also function as text terminals. The protocols for such graphics include: Tektronix Vector Graphics, ReGIS (DEC), Sixel (DEC), and NAPLPS (North American Presentation Level Protocol Syntax).
None of these covered in this document. A terminal that deserves to be called smart is a graphics terminal which can rapidly display full-screen graphics just like a PC monitor. It will also have a mouse. Bytes sent to it often represent bit-maps for pictures (and other graphics). It will often use a high-speed connection to the computer using twisted pair or coax cable. X-Window terminals are such devices. See the link to Xterminal-HOWTO at Related HOWTO's
For displaying a MS-Windows GUI there are at various types of interfaces and terminals: Winterm using WinFrame software from Citrix is one. Another (based in part on Citrix's code) is Hydra (code name) by Microsoft, also known as "Windows Terminal Server" which works with versions 4 or higher of MS Windows NT. Citrix uses its ICA protocol and has created an add-on to Hydra known as pICAsso so that WinFrame (ICA) based terminals can use the Hydra system. Hydra is also multi-user. There is also the "MultiConsole Personal Terminal" by Unbounded Technologies and Tektronix had its own multi-user interface but will now support Hydra. A magazine article in 1997 called Winterm a "dumb terminal" but it's really pretty smart. Such terminals are often called "thin clients", but some thin clients are more that just terminals as they can execute Java code sent to them, etc.
"Quasi" is my terminology (not standard). These are neither true computers nor terminals but are something in-between. Network Computers (NC's) are computers with a CPU but no hard Disk. They are full-graphics and connect to a server computer. They are different from terminals since the programs they run execute on their own CPU chips. Java code may be sent to them for execution. They should work on IP networks and might work under a server running Linux. Wintel established a "NetPC" which, unlike the NC, is almost a PC computer. However, it has no removable disks so users can't install their own software or obtain copies of anything.
Since a PC has a screen and keyboard (as does a terminal) but also has much more computing power, it's easy to use some of this computing power to make the PC computer behave like a text terminal. This is "terminal emulation". It's not strictly a type of terminal since emulation could, in theory, emulate any of the above types (but the most common is the emulation of a text terminal). See Terminal Emulation