Linux Thin Clients: The Server
For many companies and individuals looking for alternatives to their desktop operating system, Linux is the natural choice and offers many relatively painless ways to make that switch. Unfortunately, modern Linux distributions running KDE and GNOME can demand a great deal of resources, and in some cases, companies looking to make a switch have been holding on to fairly modest PC hardware. Luckily, Linux enables you to set up workstations with minimal Linux installations that offload most of the work to a powerful, central server.
This is the thin-client approach. Just how thin this client can be is a matter of which approach you choose. In fact, it can all be done without even reinstalling the client PCs.
How Thin Clients Work
Linux thin clients typically are PCs booting from an Ethernet card with a chip that asks for an address from the server, or they are PCs with a specially prepared boot diskette that performs the same network boot function. Thin-client PCs don't even need a hard drive to provide a user with all of the functions they need. Companies may also choose to use a dedicated thin-client PC built for that purpose.
After boot, the unit—whether a PC or dedicated thin-client unit—requests an IP address, netmask, and default route from the thin-client server via DHCP (Dynamic Host Configuration Protocol). As part of the network settings package that gets sent back, the thin client is told which kernel to load and where to find it. The kernel is then downloaded via TFTP (Trivial File Transfer Protocol).
The kernel loads, and the thin-client workstation boots. As with any Linux system boot, in this scenario the kernel takes control and configures all attached hardware. A file system image is then loaded into memory and becomes a temporary root file system. Additional modules are loaded and some further network configuration takes place to prepare the system. After a few seconds, a new root file system is mounted via NFS (you'll see a “pivot_root” message as this happens). At this point, the thin client is live, and it begins the final states of boot. The /tmp, /proc, and other file systems are created and mounted. Swap space is activated. Soon after, the graphical display starts. The workstation queries the server for a graphical login.
Although a rather simplified explanation of the process, this is essentially it. A user can now log in at the thin-client workstation and start using Linux. All this magic takes place courtesy of the Linux Terminal Server Project (LTSP). To make this magic happen, however, there are a few prerequisites that we need to visit on the server side. Via NFS, thin-client servers use shared drive space across the local network. (See Chapter 19, “Linux File System (NFS),” for more on NFS.) Even before we get to that stage, the PC or thin client needs to get an IP address from the network. To do that, it uses DHCP (Dynamic Host Configuration Protocol).