2.3. Linux and Thin Clients
A lot of attention has been devoted to Linux on the desktop recently. The primary goal of Linux desktop operation is to give users access to typical desktop applicationsword processors, spreadsheets, web browsers, etc. An alternative exists to this configuration, though: thin client computing. In many respects, thin client computing is very old; the typical mainframe model, with a large central server and many dumb terminals attached to it, closely resembles thin client computing. Thin clients, though, give users the ability to run GUI programs. Thin client computing has certain advantages and disadvantages compared to traditional workstation configurations. You can use Linux as a thin client OS or as the OS accessed by thin clients. Before going too far with a desktop Linux deployment, you may want to consider a Linux thin client solution. It's not for everybody, but some sites can benefit from it. For more details about thin client configuration, consult Chapter 12.
In a thin client configuration, most computers are thin clientsrelatively limited computers that consist of a keyboard, a mouse, a monitor, and just enough computing power to display data on the screen and communicate with a central login server. This login server is a multiuser system that can handle all of the network's users' ordinary desktop computing tasks. As such, the central system must usually be quite powerful. Because a typical desktop computer's CPU is mostly idle as a user types or reads, and because a multiuser system can save memory by using shared libraries and similar tricks, the central system doesn't need to be as powerful as the combination of all the workstations it replaces. For instance, consider an office of 10 users that require 10 2-GHz Pentium 4 computers with 512 MB of RAM. In a thin client configuration, you probably don't need a 20-GHz Pentium 4 with 5 GB of RAM (if such a computer even existed!); something along the lines of a dual 3-GHz Pentium 4 with 2 GB of RAM will suffice. Actual requirements will depend on the specific applications, the network bandwidth, and other factors.
The thin clients themselves can be either dedicated hardware devices or recycled older computers. Even an 80486 system might make an acceptable thin client. Thin clients frequently boot from the network using Ethernet cards that support network boots and an appropriate set of servers. You typically need a DHCP server and a server running the Trivial File Transfer Protocol (TFTP). One type of thin client is known as an X terminal. This is basically a computer that runs an X server and little else. Other thin clients can use the RFB protocol or other protocols. As described in Chapter 12, several dedicated Linux thin client distributions exist, as well as tools that enable thin clients intended for Windows to connect to Linux servers.
One big advantage of thin clients is that, by centralizing the bulk of the desktop software on one system, you can simplify system administration tasks. The thin clients themselves are simple enough that they require little in the way of maintenance, and as they download their OSs from a server, you can even administer them centrally. More important, the central login server is just one systemadmittedly, one with many users, but one system nonetheless. Instead of rolling out a software update to dozens of computers, you can deal with just one. Particularly if you have a number of old computers on hand that you can recycle as thin clients, this approach can save money on hardware compared to upgrading desktop systems.
Thin clients are not without their drawbacks, though. Because GUI displays must be copied over the network, they require better network infrastructure than is required in a more conventional workstation configuration. The central login server will be particularly hard-hit by this requirement. You may need to upgrade your network to a higher speed or segment it and give the central server multiple network interfaces. As a rule of thumb, an unswitched 100-Mbps network can handle about a dozen thin clients; if you use switches, the number goes up to about 100 users. Configuring the thin clients to support sound and give users access to local floppy disks or other removable media may take extra effort. Because the entire network is wholly dependent on a single computer, a failure of that computer will be devastating.
Linux can function as a thin client OS. Typically, you'll prepare a custom Linux installation and configure it to load from the network or from a hard disk in the thin client itself. When connected to a Linux remote login server, you're likely to use X's networking capabilities to handle the communications. However, Linux can be used with RFB or with other protocols to provide users with remote access to a Windows remote login server.
Linux can also function as the central login server. Typically, you'll use X terminals (either dedicated hardware X terminals or old desktop systems configured as X terminals) as the thin clients, but you can use RFB instead, if you prefer or if you've found thin clients that support this protocol but not the X protocols. As a multiuser OS, Linux is particularly well-suited to function as a central login server. Of course, for all but the smallest network, you'll need a pretty powerful computer to fill this roleprobably a multi-CPU system with several gigabytes of RAM.