Building the Ultimate Linux Workstation
In 1996, Eric Raymond wrote a popular article for LJ called “Building the Perfect Box: How to Design Your Linux Workstation”. Lately, some of us have gone hardware shopping, and noticed that the hardware choices have changed a little since Eric recommended a Pentium 133 or 166 with 2GB of disk space. So, we asked Eric and some other experts to help us update the recommendations for building the ultimate Linux workstation.
Back in 1996, Eric advised Linux Journal readers to “buy one or two levels lower than commercial state-of-the-art”. That's still good advice in general. If you're trying to save money, there's a lot of price difference between a manufacturer's fastest CPU and the ones just a little slower; and your money will be better spent on more RAM or other parts.
Even though Eric's advice is still good on the planet Earth, we're building the ultimate Linux box, so we'll select the fastest CPUs we can get. Yes, CPUs, plural. With background tasks on their own CPU, your cycle-hog processes, such as MP3 encoding and the GIMP, will have the other all to themselves, and that's good news. However, if you're on a budget and are going for a general feeling of “responsiveness” when starting programs or opening files, SMP won't help much, and you'll be better off with one CPU and 10,000RPM SCSI drives than with slow drives on an SMP system.
Which CPUs? Darryl Strauss worked on the render farm of Alpha-based Linux machines that rendered many scenes in Titanic (see the February 1998 issue of Linux Journal). “I really love Alphas”, he says. “I have a dual 264 system at home and it rocks. They are also doing some great work on their upcoming boxes that will include faster processors, a faster bus and AGP graphics. The problem is that they are niche. If you have a specialized application that runs on the Alpha, you can't beat them. If you want a general-purpose system, then Intel-compatible is the way to go.”
Most of the people writing the software you want to run are testing it on Intel-architecture systems, so we'll stick with Intel's current top-of-the-line processors for now. AMD CPUs are binary-compatible with Intel, and performance-wise they can take Intel one-on-one, but currently there's no motherboard that supports two of them.
The list of available motherboards changes constantly. There are enough new motherboards coming out to sustain entire web sites with just motherboard news. How can you pick one? Jason Collins, a software engineer for VA Linux Systems and developer of the Cerberus test suite, is building his own Linux system for home use, and has some advice on selecting a motherboard. “I look at overclocking sites. If a board is stable when it's overclocked, it's going to be very stable at its intended speed”, he says.
Sam Ockman, CEO of Penguin Computing, says, “Spend some money, get a nice Tyan board.” Tyan motherboards have a reputation for reliability among the Linux system vendors. Mike Higashi is a Linux consultant who builds many of his own machines, and he recommends Asus boards.
Darryl Strauss is using the Asus P2B-DS, which is based on Intel's old but reliable 440BX chipset. The BX motherboards are still a decent choice for SMP on a budget. If you're not going SMP, the current CPU and motherboard combination of choice is an AMD Athlon on an ABit KA7-100.
When choosing a motherboard, be sure it supports ECC RAM, and enough of it for your foreseeable needs. Considering the amount of RAM in an ultimate Linux workstation and the length of time it runs, you will get bit flips if you don't use ECC. There's a new “Linux ECC” driver that provides extended logging of single-bit ECC errors, which are normally invisible. If you have a supported motherboard, you can use it for testing.
Open up a large white window on your screen, and look over the top of your monitor at something in the distance. If you can detect flicker out of your peripheral vision, your video card or monitor is bad or misconfigured. Flicker that you don't ordinarily notice can give you a headache or other health problems. Different people seem to require different refresh rates—most are around 75-85Hz. The video card in any Linux box should be capable of an adequate refresh rate. For an ultimate Linux box, you'll need that high refresh rate on a very large monitor at 24 or 32 bits per pixel. Even if you aren't interested in 3-D, get a good video card to spare your eyes.
The ultimate Linux workstation needs 3-D. Darryl Strauss says, “The up-and-coming board to watch is the Radeon,” which is ATI's entry in the 3-D graphics performance race. “Performance is about the same as the GeForce2 and they want to do open-source drivers. It's just not out for Linux yet.” Watch your favorite Linux news sites for details. As we go to press, the speed leader is the NVIDIA GeForce2, which Strauss calls, “a great board except for the license”. This January, VA Linux Systems took a hit from the UNIX vendors' crack pipe and broke ranks with the rest of the Linux community to offer a fast but proprietary 3-D package for NVIDIA cards.
Trying to plug binary-only proprietary software into the low levels of a sleek open-source environment is like pilling a cat with chopsticks, so until NVIDIA gets on the clue bus, it's safest to go with one of the second-ranked boards—either the Voodoo 5 from 3dfx, or the new Matrox G450. Jason points out that the Matrox cards are good at taking advantage of more CPU power. “With a fast CPU, you can start to approach NVIDIA's speed.”
Free DevOps eBooks, Videos, and more!
Regardless of where you are in your DevOps process, Linux Journal can help!
We offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, and advice & help from the expert sources like:
- Linux Journal
- Be a Mechanic...with Android and Linux!
- New Products
- Users, Permissions and Multitenant Sites
- Flexible Access Control with Squid Proxy
- Security in Three Ds: Detect, Decide and Deny
- High-Availability Storage with HA-LVM
- Tighten Up SSH
- DevOps: Everything You Need to Know
- Solving ODEs on Linux
- Non-Linux FOSS: MenuMeters