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", "character terminal", "ASCII/ANSI terminal", "asynchronous terminal", "data terminal", "video terminal" and "video display terminal" (VDT) and "green terminal" (since many used green displays). 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. See section Block Mode.
Many text terminals can display bit-mapped images, but not in color. Unfortunately, the popular image formats used on the Internet are not supported. The protocols for such graphics include: Tektronix Vector Graphics, ReGIS (DEC), Sixel (DEC), and NAPLPS (North American Presentation Level Protocol Syntax).
Even without bit-mapped images, ordinary text terminals can sort of display images. One may form arrows <--- and draw boxes with _ and |. With special graphic character sets, even more is possible. By using all the letters, one may produce "ascii graphics" art. The term "graphics terminal" usually means a terminal that can display bit mapped images. However, this term is sometimes applied also to 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 were intended to be used for monochrome screens that don't have any dots. They use smart electronics to draw lines and curves with an electron beam that can move in any direction (at any angle and location). True vector graphics draws high quality lines without zig-zags but is both rare and expensive. Raster graphics is almost universally used today for both PCs and text terminals. For PCs, 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).
These are thin (minimal) computers that behave something like terminals. Since text terminals (except for very old one) run an embedded operating system, they are also like a computer. Thin-clients need more computing power. In contrast to text-terminals thin clients all display a modern high-speed GUI. They are dependent on more powerful computers (servers) for their operation. For a true terminal, the computing work and disk storage will all be done on the server. At the other extreme, most of this work and storage is done at the client but some things such as administration, still depend on the server. Since such a client is not really "thin" it's a misnomer to call it a "thin client". Some claim that text-terminals are also thin clients but they are not really since they don't conform to the client-server model.
Thus a thin client is like a terminal and perhaps should be called a terminal. The thin client has a GUI with a mouse that makes it seem like you are using a computer. You are, but that computer may be far away and have many other people using it at the same time you are. Communication is over a high speed network cable or even over the Internet. Some thin clients can, in addition, emulate a text terminal and have a serial port connector for that purpose. One even has a USB interface.
There are two major types of thin clients (and some additional types as well which will not be discussed here). One type is the "Window Terminal" which usually runs under MS software and servers. The other type is the "network computer" which is supposed to be platform neutral. This implies they should work with both MS Windows and Linux but early models may not be easy to use with Linux.
These can run under MS Windows NT/2000 using a proprietary protocol. They are true terminals since all the computing work is done by the server running Windows. They are also called "Window-based Terminals" (WBT). Some have support for unix-like systems as well and may not claim to be WBTs (even though they can be used as WBTs). They are something like computers since they run an operating system (often stored in flash memory so it may be updated). Some can support X-Windows also and can be used for Linux (from a Linux server). Many so called "network computers" can also run X-Windows. This will be discussed in the next section.
For displaying the MS-Windows GUI, Citrix was (and is) a major player with what was called Winterm using it's WinFrame software (which supported Windows 3.1). Microsoft licensed some of this and then came out with Hydra (code name), also known as "Windows Terminal Server". It works with versions 4 or higher of MS Windows NT. Then other companies that had their own proprietary systems for MS Windows decided to support Microsoft's system.
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. There exits a ICA client that internally runs Linux (but connects to a MS Window's server). Microsoft has substituted RDP (Remote Desktop Protocol) for ICA. Citrix has replaced WinFrame with MetaFrame which supports Windows 95, etc. and is used in conjunction with "Windows NT Terminal Server Edition".
The above is sometimes called "network computing" since the terminals and servers connect to each other over a network. Network computers may be somewhat different as described below.
These are neither true computers nor true terminals but are something in-between. One type of network computer (NC's) is a computer with a CPU but no hard Disk. The OS it needs to run is sent to it over a network. NCs are full-graphics and use the services of a server computer. They are a little different from terminals since some of the programs they run may execute on their own CPU chips. Running a browser was supposed to be one of their primary functions and thus Java code applets may be sent to them for execution. Many NCs support X-Windows so that one may use a Linux server to support it. Such a server may be called a "Linux Terminal Server". IBM called their NC a "NetStation" but now calls it "NetVista". They should work on Intranet type networks and NetVista can run the the Linux OS.
Wintel came out with a "NetPC" which, unlike the above, is almost a PC computer. However, it has no removable disks so users can't install their own software or obtain copies of anything.
Linux provides NFS (Network File System) so that if ordinary computers are connected to each other via a network, then a person on one computer can run programs on another computer. Such a program sends messages over the network so that it appears just like a program was being run by your local computer. But such a program is actually being run on a computer on the network. It works also with X-Windows so that one may see GUI images generated on another computer.
Linux also allows a computer to be diskless (see Diskless-HOWTO and Network-boot-HOWTO) and boot over a network. Thus using a diskless computer which runs NFS enables you to run programs on another computer (the server). This is just like using a NC (Network Computer). It's not really a NC but it's emulating a type of NC. It's also often called a "terminal" and in some sense it is. The server may be called a "terminal server".
Thus if you have an old PC with an ethernet card (NIC) you may be able to use it as a NC. The details of this are covered in Thinclient-HOWTO. Even if your old PC doesn't have a NIC, you could still use it to emulate a text-terminal. See Terminal Emulation.
There are also a number of genuine Network Computers (NC) that will work with a Linux server. Today some NCs run the Linux OS inside the NC. Before Linux became popular, NCs didn't run the Linux OS but required some other OS. But even if the NC uses a non-linux OS, it's often possible to make it work with a Linux Server. The non-linux OS is simply stored as files on the Linux Server. Then when the NC starts up it sends a message to the Linux Server asking for the non-linux OS files. This non-linux OS is thus sent to the NC over the network and the NC boots.
The Linux Server runs the NFS and X-Windows both of which must be supported by the NC. This enables one to use the NC as if it were an X-Window terminal.
There are some Linux HOWTOs for certain brands of NCs:
There are 3 different hardware arrangements for thin clients. One just uses a PC computer as a thin client by emulating a thin client. It really isn't a thin client but it behaves like one. Another type looks just like a text-terminal. It just looks like a monitor, with a connector for a keyboard and another connector for a network cable. It's a dedicated thin client and can't be used for anything else. The third type looks like a tiny computer. It uses a standard PC monitor and keyboard both of which plug into a small box which is a "thin" computer. This box provides an interface between the monitor/keyboard and the network.
Promoters of NCs and related Window-Terminals projected that they would soon replace millions of PCs. In 1998 about 700,000 thin clients were sold with about 27% of them being NCs. But in 1999 only about 600,000 thin clients were sold. A major reason that more were not sold is that PCs have come down in price in recent years so that they are often no more expensive. However, it's argued that even though thin clients may cost the same as PCs, the maintenance and administration costs are less. Note that thin clients sometimes replace text terminals instead of PCs.
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 called "terminal emulation". They usually emulate text-terminals. See Terminal Emulation