This was written in late 2001. The specifics have changed a bit since then, but I think the principles are still valid. In particular, the section on spending priorities is still current! If you find this useful, I'd get a kick out of hearing from you, at nels dot yahoo at member dot fsf dot org.
Update 20 January 2005. Added a bit to the section on LCD verses CRT.
Introduction to computer building
This page is aimed at folks more-or-less like me: folks who want a reasonably fast Unix workstation on their desk, to write a dissertation, run some simulations or regressions or what-have-you, and need to get reasonable performance cheaply. I concentrate on Intel architecture, x86 machines. If you are looking for information about other architectures, look in the resources section, at the end.
You won't find much help for building a really cheap machine, nor for building a game machine. Your best bet for a really cheap machine might be to get an old, top-of-the-line HP or Compaq. If it came with scsi drives, it was probably expensive, and high quality. I saw dual Pentium Pro 100 servers going for a few hundreds on ebay in early 2001.
If you are looking to run windows, some of the information here applies, and some might not. Windows is getting better; it's up to where Unix was in the mid 80's, when I first was exposed to Unix and MSDOS was at version 2.1, starting to pull ahead of CP/M86.
To repeat the advice I always offer, when asked about computers:
Most users should buy an Athlon cpu, as of today (late 2001). There are things for which the P4 might be better, but the P4 requires RDRAM to take advantage of its long pipeline and excessively high clock speeds. This is very expensive, may be less reliable than SDRAM, and may be worse for many common tasks than SDRAM, because of its higher latency.
The Athlon has a shorter pipeline than the P4, uses the relatively inexensive DDR RAM, and has fast floating point compared to the P3, so it is a very good choice for a desktop workstation. The fact that it generally gives more bang-for-the-buck than the Intel chips means it should be your default choice, unless you have a specific need which would be better-served by something else.
your computer really matters, don't buy ready-made. You can
make a far better machine which will last longer and give you more
bang for the buck if you stay away from Compaq, HP, et cetera. Their
very high end machines may be acceptable, but their midrange and low
end stuff seems like a very bad deal to me.
You probably can't build a high end machine cheaper than HP or Compaq, but you can certainly build what most of us need for not much more than the price at which the big manufacturers offer cheap, unreliable stuff.
You should set your spending priorities as follows:
- First, get a motherboard which supports an Athlon with the fastest frontside bus.
- Then get as much of the fastest RAM you can afford.
- Then get the biggest monitor you can afford.
- Then get the fastest hard drive you can afford.
- Then get the slowest cpu which will do the job for you.
Here is the reasoning behind the above:
A computer can only be as fast as its slowest part. In pcs, the bottlenck is often in the connection between memory and cpu, sometimes in the connection between disks and cpu. The cpu itself is rarely the bottleneck, for most uses. There are exceptions to this, but odds are if you are really experiencing a bottleneck at the cpu, you will know about it. Modern CPUs are so fast that you won't usually be held up by them. Thus, it makes sense to buy the fastest frontside bus available, and then put the slowest cpu which will run at that speed on it. I am currently using a 133MHz front side bus, and a 1GHz Athlon because that is the slowest chip which uses the 133MHz bus speed.
Buy Good Quality
Cheap stuff will cause you nothing but headaches; that's why I suggest staying away from the cheap, ready-made boxes. Even if your time is worth minimum wage, cheap parts can cost you far more in trouble-shooting time than they save. Athlons are very picky about power and RAM, so be careful what you get.
Buy a motherboard which is intended for overclocking, and don't overclock it. You need a high-quality motherboard which can be run at its rated speed without already being pushed to the limit. An overclockable motherboard will have plenty of heatsinks, should be quite reliable, and will be much more flexible about upgrades in a year or two. I have used ASUS and ABIT motherboards, and have been satisfied with them. I don't want to bother to recommend a motherboard here; the information would change every few months. Check some of the hardware review sites I recommend below for boards which seem reliable. This is an authoritative guide.
RDRAM (rambus memory) is a proprietary technology which provides very high bandwidth (the memory can supply lots of stuff, fast ) at the cost of very high latency (it takes a long wait to get the information started flowing.).
RDRAM seems to have an advantage for big number-crunching jobs. When you have hundreds of megabytes of data all in a row, and need to read the first one, then the second one, then the third, ... while the instructions are a simple little loop, all in cache, then RDRAM should really shine. The long latency won't matter, since you will be making a few accesses to large chunks of data. If you are doing this sort of thing as a large part of your workload, you probably know it.
If you are making many small memory reads, accessing a little bit of data from here, and a little from over there, the long latency at the start of each access will eliminate any advantage from the high throughput. This is the normal pattern of memory access for most of us, most of the time.
Because RDRAM is more difficult to manufacture than SDRAM, and because is proprietary, with license fees to pay to the RAMBUS company, it costs more than SDRAM or DDR RAM. Right now (end of 2001), it costs a lot more. Because it operates at very high frequencies (800 MHz and up), motherboard design is very tricky. Intel has made some very expensive design mistakes which crippled some of their early RDRAM motherboards. The high clock rate also makes for very hot RAM. Over all, it seems that you should avoid RDRAM unless you have a very compelling reason to use it. For a glowing testimonial to RDRAM, look here.
SDRAM is the current standard. This has become extremely cheap (at the end of 2001), relative to what it was six months or a year ago. SDRAM comes in two flavors, nowadays: regular SDRAM, and DDR RAM. The DDR stands for Dual Data Rate, which means that the memory sends information on both the rising and falling edge of the clock, while regular SDRAM only works on one edge of the clock or the other. DDR is a fairly recent innovation and somewhat more expensive than SDRAM. Motherboards which can accommodate DDR RAM are still a bit higher priced and a bit harder to find than their SDRAM equivalents. In early 2001, the price premium for the DDR RAM and motherboard combination seemed to be about 150% and up. At the end of 2001, it seems to be much more sensible.
SDRAM comes in several speeds. The speeds commonly available are PC100 and PC133, where the number indicates the speed in MHz of the front side bus. Don't consider anything less than PC133, and a motherboard which can run it at cas2. I seem to recall that cas stands for Column Address Strobe. The cas2 and cas3 numbers indicate the number of clock cycles between the start of a read request and the time the first data is sent.
There are companies which sell PC150 SDRAM, which may be run at 150MHz, cas3. It seems, from some limited testing I have seen reported, that it is better to buy quality PC133 RAM and run it at cas2 than to run PC150 at cas3. The 50% longer latency of the cas3 RAM adds up when you are doing many small memory reads. Again, this is the normal pattern for most pc use.
The combination of PC150 and cas2 seems unobtainable. Another consideration is that PC150 is non-standard, and will require you to run your front side bus much faster than its design speed of 133MHz. This will make for extra heat and lower reliability. Remember, right beats faster and wrong every time!
DDR RAM also comes in several speeds. PC1600 works on a 100MHz bus, and thus can transfer at twice the rate of PC100 SDRAM. PC2100 works on a 133MHz bus, and so transfers data twice as fast as PC133 SDRAM. Why aren't they called PC200 and PC266? Maybe the marketing people though a little confusion would be good for sales? There don't seem to be any options about latency (as in casX) with DDR RAM.
If you are buying SDRAM buy as much of the fastest ram you can afford.
It is probably worth spending the extra money to get cas2 ram. If
necessary, run a slower bus and cas2 rather than the faster bus and
If you are buying DDR RAM, again get as much as you can afford. DDR should give you a faster machine, and will be worth the extra cost IF YOU NEED THE SPEED. Most folks don't. It looks as if DDR RAM will soon be the standard. By all means get DDR if the price premium for RAM and motherboard doesn't seem excessive.
How Much RAM Do You Need?
You should have enough RAM that you never use your swap space during normal operations, and rarely use it in the extreme. Swap space, even on a blazingly fast hard drive, is about 1000 time slower than RAM. If you have to choose between running your problem entirely in SDRAM or partly in RDRAM (or DDR RAM) and partly in swap, the choice is clear: the machine which isn't swapping will be far faster than the one which is. Choose your RAM technology so that you can afford enough RAM to never swap.
How much is enough? My laptop has 144M of SDRAM (PC66, since it's an older machine). This lets me run wmaker, emacs, mozilla, several eterms, xdvi, R, and some miscellaneous other stuff without using swap. If I load up StarOffice, I will start swapping.
My desktop has 512M of PC133 SDRAM. This would be overkill for normal use, but when I run a moderate-sized simulation in R, this lets me keep all my other programs open and still not swap. I normally run KDE, emacs, mozilla, R, xdvi and some other miscellaneous programs, and am using around 200M. If I open Staroffice too, I can go over 300M. I would suggest that since RAM is so wonderfully cheap nowadays, that 256M be a minimum amount. 384M to 512 will probably be better. Linux will make good use of any extra memory you give it, using it as buffer and cache space. On Windows, the situation is a lot less clear; Windows does not handle memory well, and it may be possible to give it memory which it will never use. It is certain that Windows will be more unstable than usual with less memory than it wants. Go to a Windows site for details about how much to get, or try here.
Take a look here for lots of answers to questions about ram.
Unless you are interested in 3d games, you don't need a fancy video card. You do want quite a lot of video ram, since you can have multiple desktops, each with lots of colors. Since the low end 3d video cards are getting fairly cheap, it might make sense to buy one just for the ram. If your motherboard comes with onboard video, it might make sense to try it first. The Matrox M200 and M400 seem to be well supported under Linux. The M200 might be a good choice for a motherboard which has no integrated video. The M400 has some hardware 3d acceleration which is supported under Linux. I am currently using an Nvidia GeForce2 MX in my desktop, and somewhat regret my choice. Their cards are not well-supported under Linux, and probably never will be, since Nvidia resolutely refuses to release any programming specifications. I gather that getting their proprietary drivers to run in something of a black art. On the other hand, I really have no use for 3d acceleration, so I'm quibbling over something which really doesn't matter to me.
You want the best monitor you can afford. You will be staring at this for many hours, and you don't want something which makes you squint, scroll, or get headaches. I would suggest that 17 inches diagonal be the minimum you consisder, and 19 and up is a lot better. Run your monitor at the highest resolution it will support at a tolerable refresh rate. I would suggest that 70Hz be the minimum refresh rate you consider acceptable. You want the smallest dot pitch attainable. 0.3mm dot pitch is way too big. 0.28 is all right on a 21 inch screen, but may be too coarse on a smaller screen. 0.25mm is quite good.
Monitors can last for many years and several computers, so don't stint yourself here. Consider buying used; a four or five year old, top-of-the-line-back-then 21 inch monitor can be a pretty good deal, compared to today's low end 19 or 21 inch monitors.
You should run the monitor at its highest practical resolution ( a 21 inch monitor should be able to run at at least 1600x1200). This will give you the largest possible desk top, and the most possible detail on the screen. A 21 inch monitor at 1600x1200 will display a whole sheet of 8.5x11in paper on screen, in readable detail, without the need to scroll. This is great for reading those pdf-format manuals. If you find the icons and text to be too small at such a high resolution, use larger icons and text. This is easily done under KDE and wmaker. I suspect that it can also be done under MS*, but I'm not sure.
LCD panels keep getting cheaper, but they aren't that cheap yet (at the end of 2001)! I like them better than the CRT screens; they seem to be easier on my eyes. The 15 inch panels are becoming affordable, and seem about as big as 17 inch CRTs. If you want to get a really big LCD which will give you the on-screen real estate of a 19 or 21 inch CRT, you will still pay a huge premium over the cost of the CRT. I'd rather have plenty of space on-screen than plenty of space on my desk.
Update 20 January 2005.
The LCDs keep on getting cheaper, but the CRTs are, too. Today, the 17 inch panels are becoming pretty affordable, and seem to be about as big as the 19 inch CRTs. The LCDs are still definitely easier on the eyes than a CRT with equivalent screen area. You'll find some brief tips on choosing between LCDs and CRTs here.
Another possibility (which didn't look practical in 2001) is to use two video cards and two monitors. Xinerama makes it easy to set up a single desktop spread across several monitors (just read the fine manual), and this can give you loads of desktop space on a couple of smaller, cheaper monitors. Two 17 inch LCDs would probably beat out one 21 CRT every way but cost, and would be a lot less likely to give you a hernia.
My thought is that the older, formerly top of the line 21 inch CRT may still be the best value for the money, but if you have the money for a pair of 17 inch LCD displays (and the rest of your computer, too), they'd be awfully hard to beat.
Right now, the fastest IDE drives are the ATA133, and the fastest common drives are the ATA100. The number in ATAxxx is the theoretical maximum transfer rate between disk and motherboard, in MBytes/Second. You will not actually achieve that throughput! My ATA33 harddrive on my laptop gets about 2.5MB/S befor tweaking, and about13MB/S after running (as root, be carefull!) hdparm -d1 -m16 -u1 -c1 /dev/hda, as reported by hdparm -t /dev/hda. These setting work fine on my boxes, and I guess that they would work on most modern boxes, but of course I have no way of knowing whether they will work on yours. Hdparm can do damage to your data and hard drive, so use with caution!
I suggest you get the ATA66, at least. You should be looking for a motherboard which supports the ATA133, ideally, or at least the ATA100. Even if you get an ATA66 hard drive now, in a few years the ATA133 will be common and dirt cheap, just about the time you are ready to upgrade. By the way, the ATA66 and faster drives require a special cable; it looks like a ``finer'' version of the regular cable. You can use the regular cable, but you will run your fast harddrive at the slower ATA33 speed.
Hard disk space is cheap, and you shouldn't handicap yourself with a small one. On the other hand, 20 to 40 GB is probably going to be more than enough. Unless you know some immediate need for a bigger disk, I'd suggest that you buy something at the ``sweet spot'' where you get the best price/storage space ratio. At the end of 2001, that seems to be around 40GB or so. If later on you develop a need for more, your bigger drive will be cheaper and faster then.
ATA/IDE Bus Masters and Slaves
Ideally, your motherboard will have one IDE controller and cable for each ATA/IDE drive. This will let you have the fastest possible access to your data. Most motherboards have two controllers, so if you have a single ATA hard drive and a single ATAPI CD-RW, you're all set. Put one on each cable. If you have more IDE devices than controllers, you can put up to two devices on each cable. You will need to set jumpers on each, in any event. More to come
If you really have the need to move a lot of data, you should consider
an ultra wide scsi bus, and appropriate drives. This will be more
expensive than IDE, and may not be much faster in terms of peak speed,
but I hear that they are still much better in terms of throughput.
SCSI's advantage seems to lie in being able to handle many devices and
heavy loads better than IDE. If your cd-rw's, hard drives, and similar
peripherals add to 2 or less, you don't need scsi. If you don't know
why you need SCSI, you don't. See below for some more information.
Now that most scanners, zip drives, and so on are available in USB versions, which are (mostly) suported by Linux, some of the most compelling arguments for having SCSI are gone. If money were no object, there would be no reason not to get SCSI everything. I have not used a scsi bus in many years, and so I won't say anything more about it.
If you need to have really FAST or really BIG drives (and you probably
don't), you can set up a software raid array, using several IDE drives. I
hear that Linux can be induced to boot from such a device, but this
might make more sense as a drive for /usr and /home than for
By the way, don't use a desire for fast swap as an excuse for doing this; buy more RAM rather than a faster hard drive! A RAID array might make sense if you have a lot of large files which you need really fast access to, (use RAID 0) or if you need really high reliability (use RAID 1 or so). You will need to have enough IDE controllers to handle all your drives. If you don't have enough on the motherboard, you can get a PCI card which adds more.
If you are not going to use Windows, you need to be very careful about what modem you buy. Many of the PCI card modems available today are Winmodems, which make your cpu do the work of the digital signal processor in a real modem. The ``modem'' part of these Winmodems is a proprietary driver which will hog your cpu. Take a look at the linmodems site for some information. This site has some information on which modems are (or are not) real modems. The good news is that if you have a fast Athlon, you may not care. The bad news is that you may not be able to use the card under Linux.
My Current Desktop
I'm currently using a homemade box which I built in early summer 2001.
Motherboard and RAM
It has an ABIT motherboard (KT7A-RAID) which allows me to use a 133MHz front side bus with SDRAM. At that time, DDR RAM and motherboards which supported it commanded a large price premium, and I just couldn't justify it. Today, I would certainly buy DDR. I have 512MB of PC133 SDRAM running at cas2. I got lucky, since my ram is rated as PC133 cas3. It is rock-solid at this speed, though. Take a look at memtest86. Run it before you rely on memory you have pushed beyond its advertised limits like this. Remember, right is more important than fast!
I almost forgot to mention this, since the cpu is one of the least important parts of a machine. As I said above, I am currently using a 133MHz front side bus, and a 1GHz Athlon because that is the slowest chip which uses the 133MHz bus speed.
Video and Monitor
I am using an Nvidia GeForce2 MX. I got such a fancy card mainly to
get the 32MB of graphics ram. As I said above, I'm not entirely happy
with it, and wish I had gotten a Matrox M400 instead, since its
hardware acceleration is supported by Linux. Since I don't need the
acceleration, this is a minor complaint.
My monitor is a 21 inch IIyama 9021 pro which I bought used. It runs at 1600x1200 without any flicker, and is very comfortable to sit in front of (too comfortable, according to my wife! She wants to see more of my face, and less of the back of my head.).
I'm using a MultiTech modem which they advertise as being compatible with Linux. It is a MT5634ZPX-PCI. It is indeed compatible, and has been very satisfactory. I can burn an audio cd on-the-fly, making the iso image as I write, and go online safely.
I'm using a Maxtor 30GB ATA66 hard drive. This is plenty big, and plenty fast.
I have a Sony 8/4/23 CD-RW drive, and am quite happy with it. Haven't burned a coaster yet. I use the x-cd-roast software which came with Linux, and of course, cdrecord. I have a second cdrom drive which I salvaged from a friend's dead Compaq. It's a bit flakey, but the price was right. I have also a 3.5/5.25 inch combination floppy drive which is a relic from the Gateway 486 machine which used to inhabit the case.
The case is a full-tower which I salvaged from a Gateway 486. It is nice and roomy. After I added three ball-bearing fans (two blow in at the bottom front, one blows out at the top back), it stays pleasantly cool inside. I had to install a different power supply. I chose a 300W supply which was supposed to wrk well with Athlons. It does. Athlons are very picky about power and RAM, so be careful what you get.
Using an AT case with an ATX motherboard
The case was originally for an AT motherboard. I am using an ATX motherboard. The different size really wasn't a problem; I just relocated a few support studs. The fact that the holes in the back of the case were all wring was a bit more of a problem. I put a metal-cutting blade in my scroll saw and made new ones. The biggest problem was that the power supplies are very different. I not only had to put in a new power supply, but also a new switch.
The AT power supply uses a regular on/off switch, not unlike the light
switch on the wall. This switch connects directly to the power
supply. The ATX wants a momentary-contact switch which connects to
the motherboard, rather than to the power supply. The reset switch
on the front panel of the case is a momentary contact switch, so you
can simply take an old reset switch and mount it in the power switch
hole. In my case this took a bit of glue. I then took another
reset switch and hooked it up as a suspend button. I don't need a
reset switch, since I'm not running windows.
Re-fitting the case for the new motherboard took me about 4 hours. Good cases are still expensive enough that it seemed time well spent; I figure I made wages on the savings.
There is a list of hardware known to work with Linux. It would be a good idea to check it before you buy.
For a fairly good discussion of what to look for in a Unix workstation, see the Unix Hardware Buyer's Howto, by Eric S. Raymond. I agree with most of what he says, except his conclusion that it is better to buy than build. I'm still a poor graduate student, so that may have skewed my opinion relative to his. His discussion has been recently updated, but still feels a bit dated to me. Other versions of his advise may be found here and here.
This article strongly recommends ECC RAM, and the author may be right. I buy good quality RAM, and run memtest occasionally, and so far I've been all right. I think that this guide is well worth looking at. It seems to be updated occasionally.
If you are interested in a non x86-architecture computer, you may find this series of articles useful. The author is an astronomer who is looking for a RISC (i.e., non-Intel-compatible) cpu for doing floating-point intensive work. He evaluates the G4 (PowerPC), Sparc and Alpha chips. The article comes in five parts: Part One, Part Two, Part Three, Part Four and Part Five.
Hardware Review Sites
This sitehas lots
of answers about the ATA hard drives. This site will define any terms
you are curious about. Here
is more than you ever wanted to know about SCSI drives. This link
will help you choose between SCSI and ATA.
Hard Drive Resources
This sitehas lots of answers about the ATA hard drives. This site will define any terms you are curious about. Here is more than you ever wanted to know about SCSI drives. This link will help you choose between SCSI and ATA.