Software development techniques behind the magic user interface

Multi-Touch Developer Journal

Subscribe to Multi-Touch Developer Journal: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Multi-Touch Developer Journal: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Multi-Touch Authors: Ben Bradley, Qamar Qrsh, Suresh Sambandam, Jayaram Krishnaswamy, Kevin Benedict

Article

How to create a Linux-based network of computers for peanuts (part 2)

You don't need to spend $1,000 per user to create a modern, friendly, fast & productive computer system.

(LinuxWorld) -- You may recall from Robin Miller's excellent report on Linux and X terminal computing at the city of Largo, FL, that Largo's main application server has dual 933-MHz processors and three gigabytes of RAM. (That's no ordinary commodity PC, and should qualify as a boar hog among i386 computers in anyone's book.)

Largo's 800 employees share 400 X terminals (I presume in shifts). If you have fewer than 800 children at home, or if your organization employs fewer than 800 people, your server needs will be more modest.

Alert readers may also wonder why the IT department at Largo chose to spend $750 each for hundreds of NCD X terminal appliances. Again, Largo has 800 computer users (no doubt scattered all over town in different facilities) -- and an I.T. staff of 10. For homes, small businesses and departments within larger organizations with a need for 5, 10, 20, or 50 desktops -- and that perhaps also have a shortage of skilled administrators -- recycled PCs are not only less expensive, but also easier to configure.

This is, after all, an exercise in cheap and easy Linux-server centrism. It doesn't mean one approach is right and the other wrong. It does mean Linux is extremely versatile, infinitely configurable, and suited to diverse needs.

Step one: Roundup server hardware

We will require, at minimum, two computers. One is an application server and the other is an X terminal. You also need a network. You may want a method of connecting to the outside world, which might be another LAN segment, or perhaps, the Internet. (More on this in Part 3).

The specifications of the server depend on a number of factors. An experiment or demonstration may not justify the same resources as a production deployment. The number of users, the types of applications, and the desktop environment/window manager(s) all figure into the equation, as does your own subjective judgment as to what constitutes acceptable performance.

In this case, unlike the system used by Largo, Florida, the desktops do not boot from the network, so that additional server load is eliminated. Here are some real-world examples, tainted with my personal prejudices, and drawn from my own experiences, experiments, and failures.

For one to six users, FVWM95, TWM, or other similarly slim window manager, lean and efficient applications like Abiword -- and for a browser, Netscape 4.x rather than 6.x or Mozilla -- a 90-MHz Pentium with 64 megabytes of RAM will do. Yes, a 90-MHz Pentium I.

Don't like FVWM95? Think TWM is too Spar tan? Want KDE or Gnome? But still only a half dozen users or so? A P200 with about 80 megabytes of RAM does surprisingly well.

Let's up the demand a bit. Need Netscape 6.x and the Star Office suite? SDRAM helps. The same P200 with 128 to 192 megabytes of PC100 SDRAM can handle the load reliably, if not spectacularly. Just make sure you install Star Office using the /net option.

It doesn't take a rocket scientist to figure out that if a P90 with 64 megabytes EDO RAM can serve five or six users logged in at X terminals with TWM and a dual 933-MHz machine with three gigabytes can handle 400 running KDE, any current commodity PC upgraded to 384 to 512 megabytes of RAM (now about 50 cents per megabyte) should handle 25 users running an array of productivity applications. A recent Staples advertisement touted a 2-GHz P4 Windows desktop machine with 256 megabytes of RAM at a bit over $2,000, so you should be able to find something suitable in your price range.

Disk I/O becomes more quickly a bottleneck on application servers than CPU speed, and swap space is considerably slower than physical RAM. I'd much prefer a 300-MHz processor and 512 megabytes of RAM to a 1.2-GHz processor and 128 megabytes of RAM in an application server.

It's often more efficient for disk I/O if the server uses several smaller disks on different I/O channels than one big disk on one channel doing everything. At work, I carefully partition multiple drives, and do things like put /usr/lib and / next to each other on one disk and /usr on another. At home it's one disk with /, swap and /home. Relax. Experiment a little and decide for yourself.

Size the hard drives based on your estimate of what the user's home directories will require. (Again, use the /net option when installing Star Office so you don't waste gigabytes of disk space.)

An application server needs only 500 megabytes to two gigabytes for everything except home directories.

Step 2: Roundup client hardware

In a pinch, even a 386DX with 8 megabytes of RAM and a 120-megabyte hard drive will do. For production use, such a machine will not scroll smoothly, use virtual memory too often, and will frustrate most users. A 486DX to P75 with 16 megabytes of RAM and a 250-megabyte hard drive is a good starting place. Sixteen megabytes of RAM permits easy installation of most reasonably up-to-date Linux distributions and 250 megabytes disk space doesn't require the base distribution, networking utilities and X to be shoe horned in. Swap space will be used, but sparingly, and performance will be more than acceptable for productivity applications.

It is in this use of local hard drives where we depart from thin-client or diskless computing, a la Largo, Florida. Unlike the NCD appliances used by the city of Largo, I recommend configuring X terminal PCs to boot from a local hard drive. This means that no boot PROMs are required on the network interface cards (NIC), nor is the system administrator required to obtain or burn these PROMs. Since the X terminal's operating system isn't loaded from the application server, that machine's minimum specifications are further reduced. A small, local swap space reduces the need for RAM in the X terminal PC. As no data is stored on the X terminal's hard drive, there is no need to provide a UPS.

Best of all, while Ethernet boot PROMs and additional RAM required for practical thin client or diskless X terminals cost money, the minimal system hard drives required to configure PC X terminals are often available for free -- or so cheap that they may as well be free. Don't be afraid to use older, recycled hard drives for these X terminal machines. You don't store data on these machines. You are not risking the loss of data by saving some money.

The only item really worth spending additional money for in a PC X terminal is the video adapter. You don't want to run some VGA-only clunker. It's often easier to find inexpensive video adapters for Pentiums than for ISA motherboards found in most 486s. As long as you have (or can obtain) satisfactory video adapters, 486DX machines are fine.

Productivity applications aren't Quake and you won't need expensive video adapters. Cards that use the XF86_SVGA server like the S3 Virge and Trio 64, or the Cirrus Logic GD 5464, with 1 or 2 megabytes of VRAM, are adequate when teamed with a basic multi-sync monitor. Do try to achieve the same video resolution on all machines, but don't be afraid to mix and match models.

The X terminal PCs should have floppy drives as an aid to easy installation. A CD-ROM drive is unnecessary -- we can install Linux through the network.

Step 3: Roundup network hardware and cable

The X Window System doesn't require much bandwidth, and some people use it over dial-up connections. Thinnet is the least expensive. Used NICs usually cost about $1. Thinnet doesn't use a hub, so there is some additional savings. ISA NICs with BNC fittings are easy to find, which is an important consideration if 386 and 486 PCs are going to be used as X terminals.

If you don't like Thinnet feel free to use twisted-pair and 10 or 100 BaseT Ethernet if that is what you want. Don't expect extra performance for the extra expense.

Hungry Minds publishes a number of books, including some "...For Dummies" titles that explain the mechanical details of stringing cable between PCs. In it's most basic form, an Ethernet LAN consists of two computers with NICs, a short piece of RG-58/U coaxial cable with male BNC connectors, a BNC "tee" attached to the connector on both computers' NIC, and a 50-Ohm termination for each end. Radio Shack, most locally owned computer shops, and for that matter, most two-way radio and Ham radio dealers supply the cables and connectors needed for a simple LAN. In Part 3 we will begin to install and configure Linux on our server and clients.

More Stories By Colin Mattoon

When not buried under his real job in commercial two-way radio system design and sales, Colin Mattoon is a part-time Linux system administrator at Northwest Communications in Lewiston, ID.

Comments (3) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Alex Almeida 10/19/04 02:30:58 PM EDT

Part III is at http://www.linuxworld.com/story/32838.htm

muscle 03/23/04 01:41:20 AM EST

this is an excellent read .. especially for those who've felt the axe or budget cut in the last little while

Dane Jones 03/14/04 02:12:10 PM EST

Once the site was redesigned all the links broke. The next installment is here:
http://www.linuxworld.com/story/32838.htm