News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Introducing the Linux Terminal Server Project

Apr 18, 2000 — by Rick Lehrbaum — from the LinuxDevices Archive — views

[NOTE: At the Linux Terminal Server Project website, you can find out how to create a Linux based diskless workstation that boots from a network server. Applications include both thin clients and embedded systems. The following is an excerpt from the documentation provided; please visit the website for full details.]

The Linux Terminal Server Project

Linux makes a great platform for deploying diskless workstations that boot from a network server. We have started an open source project to create the administration tools that will make setting up a diskless workstatione easier. This document describes how to obtain the ltsp distribution and how to install it.

This project was born out of the need to solve a problem for a customer who needed a terminal that could communicate with both an IBM AS/400 and a Unix application server. It needed to run TCP/IP, it needed to be inexpensive, and it needed to be easy to maintain. As a plus, it should allow the user to browse the web, and allow them to read and send email.

We could have used PC's running windows, the software is certainly available, but the cost would have been high. Both in terms of the initial investment, and the cost of supporting and maintaining the PC's over time. We decided that a diskless workstation running the Linux kernel and X-Windows would fit nicely as a solution to the customer problem.

We didn't really invent anything new here, we searched the web and found the etherboot and netboot packages. Then we found an inexpensive ne2000 network interface card that had an eprom socket. We searched and found an affordable eprom burner, figured out what kind of eprom chips to buy, learned about bootp, xdm, nfs-root and all kinds of other things. Then, we put it all together. Initially we tried it on an old 486 PC we had lying around and it worked pretty well.

So, we installed a server and 11 workstations. The customer loved it. They ordered an additional 22 workstations, and they will probably add many more in the future. (Update: They now have 70 workstations and they have ordered 30 more!) After several months, and virtually no support problems with the workstations, we have decided to share our solution with the rest of the world.

When the workstation is booted, it does the following:

  1. It gets it's ip address from a bootp or dhcp server
  2. It downloads the kernel from a tftp server
  3. It mounts it's root filesystem from an nfs server
  4. It loads the X-Server software into memory and begins executing it
  5. It contacts an XDM server and allows the user to log into it
In most cases, the bootp server, tftp server, nfs server and xdm server will all be the same machine, we will refer to that simply as the 'Server', and we will refer to the diskless workstation as the 'Workstation'.

Once the workstation is booted, and the user logs in, any application programs that they invoke will be running on the server, while the output is being displayed on the workstation. This is a fundamental feature of X-Windows. The workstation is only running the Linux kernel, XFree86, Init and possibly a print server daemon for printing to the local printer.

Because there is very little running on the workstation, you can get away with a fairly inexpensive, low-power machine. We found in our initial testing that an i486 with 16MB of ram was actually pretty good at being an X terminal.

We used the Etherboot package available from: The Etherboot Home Page. That takes care of the image that gets burned into the eprom, and it helps us prepare the kernel for downloading to a workstation, but it stops there.

There are several HOWTO's that explain how to setup a server for diskless booting of a single workstation, but they don't discuss the problems involved in serving many workstations from a single server. The problem is that when the workstation is running, it needs to write to some files on the server, so each workstation needs to mount it's own unique root filesystem. If you had 50 workstations, you would need 50 directory trees exported. This can be a real pain to try to manage.

We have developed a method of setting up the root filesystem hierarchy that can be shared among all of the workstations. The kernel mounts the filesystem in readonly mode, then mounts a 4MB ramdisk as it's /tmp filesystem. While the kernel and XFree86 are running, they like to update a few files, so we have placed those files on the ramdisk, and created symbolic links to them in the proper place within the hierarchy.

Additionally, we have created a configuration file and a program that runs as part of the workstation bootup sequence. Each workstation can include different hardware. Things such as Network board, Video Card and the type of mouse can be configured either as a default, or individually for each workstation.

Because there aren't any application programs running on the workstation, we don't need a swap device, although it is possible to configure the kernel to swap to an NFS filesystem.

This method of booting a workstation is being used very successfully on network with 70 workstations all running from a single server running RedHat 6.0 on a 400mhz Pentium-II. Each workstation is a 166 MHz Pentium machine with 32MB of ram. We could have used a smaller processor, but these days it is getting pretty tough to find the low-end cpus.

In the future, we would like to offer the ability to run more programs on the workstation. Many people have suggested that they would like the window manager and a web browser such as Netscape running locally on the workstation.



The above is excerpted from the documentation at ltsp.org and is Copyright 2000 James A. McQuillan. Permission to distribute and modify this document is granted under the GNU General Public License – Version 2, June 1991. For the full text of the License, you can view it at: www.ltsp.org/license.txt.

 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.