With the availability of cheap and fast PC components, many people want to build an Open Systems machine from this Pandora's box of parts. This paper attempts to outline how to build a reliable Open System from PC components, based on the author's experiences.
In recent years, the performance of medium to high-end PC based hardware has been comparable to, if not in excess of, that of low-end workstations. However, choosing PC hardware of sufficient quality and reliability, especially given the diversity of products, is not an easy task.
Whilst a lot of Open Systems competent people have a lot of experience with workstation hardware, deciphering the twisty maze of marketing (mis-?)information in the PC industry to obtain a machine to meet your requirements can be difficult.
The three most common choices of hardware to purchase are:
This paper outlines various ideas that could be used to build a reliable Open Systems machine using PC hardware, based on direct experiences of the author, as well as research into other people's experiences. It does not cover using name brand hardware, and you're on your own if you just want to use PCs purchased from your local Cheap-n-Nasty-PCs-R-Us.
I have no affiliation with any vendor mentioned, except as a satisfied or disgruntled customer (which can be determined by the context of the reference :)
All trademarks are the property of their respective owners.
This information is relevant as of July 1999.
This paper was first presented at the AUUG '97 conference in September 1997. I've updated it sporadically since then.
When choosing equipment, the adage `fast, reliable, cheap - pick any two' is quite relevant. My focus will be on (in descending order): reliability, performance, cost. A slower reliable machine is more usable than an unstable speed demon.
The reliability of the system is affected by a variety of elements:
Ensure that your target platform supports the various components that you're investigating. This information is usually found in the "Compatibility Guide" (or equivalent) for your operating system.
It can be useful to peruse on-line forums relevant to the target OS such as newsgroups, mailing lists, and the relevant FAQs; however be prepared to accept such information with a grain of salt - there's often multiple opinions, some or all of which may be incorrect.
Avoid bleeding edge technology, or esoteric/custom solutions that require driver support. Usually support for "UNIX" is just for an old version of SCO. The PC industry is starting to get a clue on using decent documented standards (PCI, SCSI), so use products with that meet them.
There are multiple factors which affect the overall performance of the system. In general, it is wiser to invest in a faster I/O system, as the cost of the CPU is usually the fastest item to devalue (and therefore, cheapest to upgrade in the medium term).
A method used by some people to obtain more performance is to overclock parts of their system - usually the CPU, memory, or PCI bus. I strongly recommend against this! In general, this results in a (marginal) increase in performance, for a reduction in reliability.
Each major component of the system is covered below, with an outline of what to look for.
The motherboard is the most important part of the PC, and the most neglected when people build a system. Its interaction with the other core components (CPU and memory) should also be taken into consideration.
Features to look for in a motherboard:
ASUS Technologies manufacture very good boards. Good choices for Pentium III motherboards include: P2B, P2B-LS (similar to the P2B, but with Adaptec SCSI and Intel FastEthernet on-board)
ATX is the newer standard form-factor. It defines the locations of the mounting points, and the power supply connecter is better than that used on the older style "baby AT" board. ATX power supplies also supply 3.3V as well as 5V and 12V, resulting in a cooler motherboard. (Most newer CPUs use 3.3V (or lower), and current motherboards have a 5.0V to 3.3V regulator with a heatsink, which generates more heat. These regulators will either be linear which dissipate lots of heat, or switching, which use coils and dissipate less heat).
Plug-and-play ("Plug-n-pray") is the PC industry's attempt to do what most workstation vendors have gotten right for years. It is only relevant for ISA cards. I'm not convinced it works properly, and my preference is to "lock down" resource settings of hardware (IRQs, DMA channels, memory buffers) to known values to assist in installation, debugging and support.
The common expansion card interfaces on a PC are one of: 32-bit PCI, AGP, and ISA. 64-bit PCI is not as common on `off-the-shelf' boards. MCA, EISA and VLB are older standards, and generally won't be found on modern motherboards. Almost all cards are now available as PCI cards; avoid ISA cards except for low-end sound cards and serial/parallel/floppy controllers. AGP is used predominately for high-performance graphics cards.
The choice of CPU depends upon estimated workload requirements.
The interface between the CPU and memory is often referred to as the Front Side Bus (FSB). A CPU with FSB of 100MHz (400MHz, 450MHz, or 500MHz) is a better choice than those with an FSB of 66MHz (333MHz or 366MHz), because the CPU to memory interface runs one third faster.
When choosing between Intel and other vendor's CPUs, take into account the CPU to motherboard connection. There are a few different types of connections currently in use: Socket 7 (Pentium, AMD K6), Super 7 (faster Socket 7), Socket 370 (for newer Celerons), Slot 1 (for Pentium II and earlier Celerons), and Slot 2 (for Xeon CPUs).
If Intel is your choice, the 400MHz Pentium II (referred to as the "PII-400" in some literature) currently has the best bang/buck; even though Celeron chips are a lot cheaper, their FSB is only 66MHz. The Pentium II is also supported in a dual CPU configuration, where the Celeron is not.
If performance is what you need, the 550MHz Pentium III Xeon may be worth investigating. The Xeon class has twice the L2 cache (q.v.) of it's non-Xeon sibling, and the L2 cache runs at twice the speed. Be aware that you will pay tens times more for this double-sized double-speed cache, so unless you are doing computationally intensive calculations that are cache friendly, Up to eight Xeons can be installed in an appropriate multi-processor board. Note that almost no off-the-shelf motherboard vendor manufactures a motherboard that supports more than two CPUs.
Whilst the current CPUs all come with on-board level 1 ("L1") cache, sized between 8K and 64K, a reasonable sized level 2 ("L2") cache is also mandatory. Most CPUs come with an on-board L2 cache of between 128K and 1MB.
The final core component is the core (memory that is). Good quality memory with an advertised warranty is a must, rather than using the cheapest no-name brand.
If the motherboard supports ECC (Error Check/Correction) via 168-pin parity DIMMs, then parity memory should be purchased for the enhanced reliability.
Unless you have no choice, don't initially fill all your memory slots; you will want to upgrade in the future, and having a lot smaller DIMMs may be a bad investment. A lot of people have stockpiles of 1MB 30-pin SIMMs and 8MB 72-pin SIMMs because of this, and I believe that 32MB and 64MB DIMMS will fall into this category in the near future.
The required speed of the memory can usually be found in the documentation for the motherboard.
Depending upon your requirements, the machine will either need a low end graphics card just for 80x24 text consoles (a server), or a card suitable for medium to high-end graphics display.
The bus interface of the card may be either AGP or PCI. AGP is required for significant performance, although PCI is quiet sufficient for most needs. Some PCI cards also support having more than one card in a system, to provide `multi-headed' capabilities.
There are many card vendors to choose from, as well as combinations of various graphics processor (GPU) and RAMDAC vendors. In general, avoid unknown clone brands, unless you are confident of support for the specific GPU and RAMDAC on the card.
The most common (and thus supported) GPU vendor is "S3". They have a large range of GPUs, but the current chips are the S3-968 (uses VRAM - q.v.), and the cheaper Trio-64V (which uses DRAM). Various RAMDACs exist, but most current S3 cards from well known card vendors should be supported, including Diamond, Hercules, and Number Nine.
Recently, the Matrox G200 has taken the field as the high- performance bang/buck 2D card. Support for this card is available in most OSes, and recently support was added in XFree86 (X11R6 for PC based UNIXes). The graphics performance of this card is very good, and far surpasses that of many workstations. Multiple G200 PCI cards can be installed for a multi-headed display.
The RIVA TNT2 cards are almost the same 2D speed as the G200, and are extremely fast as 3D card. OpenGL support is very good on these as well.
The size of the video RAM limits the maximum resolution and colour depth that is supported. Not all OSes can support all the combinations of resolution/colour depth. The following table outlines the general resolution/colour depth available (assuming a card can drive the resolution):
Video RAM | 800x600 | 1024x768 | 1152x900 | 1280x1024 | 1600x1200 |
---|---|---|---|---|---|
2 MB | 32 bit | 16 bit | 16 bit | 8 bit | 8 bit |
4 MB | 32 bit | 32 bit | 32 bit | 16/24 (*) | 16 bit |
8 MB | 32 bit | 32 bit | 32 bit | 32 bit | 24 bit (*) |
(*) 32 bit is 24 bit colour, using 4 bytes per pixel. 24 bit is 24 bit colour, "packed" using 3 bytes per pixel. If this isn't supported, then 16 bit is the maximum colour depth for 1280x1024 on a 4 MB card. This is very card-dependant - so check the documentation. |
The manufacturers references should be consulted to determine the maximum vertical refresh rates (q.v.) possible for a given resolution and colour depth. This should be taken into account when choosing a graphics card and monitor combination (more on this in the next section).
For the regular user, the monitor is the most important item. For graphics based applications, skimping on this item should be avoided.
Basic attributes of a monitor include:
CRT monitors have two refresh rates:
Video bandwidth (in megahertz) is the highest number of dots per second that the monitor can emit to generate an image. It's the product of vertical refresh rate by the number of vertical lines (including non-displayable) by the number of effective horizontal pixels (displayable, plus the leading and trailing time and flyback time).
A good video bandwidth is 135MHz, and most high end monitors can support this. However, this is often limited by the video signal inputs to the monitor. There are two common signal input connectors:
BNC inputs are the preferred for CRT monitors. To obtain even higher performance, and to reduce any "ghosting" effects, a custom video cable may be assembled which consists of a separate 75ohm low-loss cable for each signal from the graphics card to the monitor.
LCD screens are becoming more popular, because each of the pixels is square, the screens are very thin and lightweight, and there isn't a large electron accelerator aimed at your brain (as in a CRT monitor :) The cost is still quite high for these. Avoid LCD screens which only support analog inputs, because the video signal has to be converted from digital to analog (D-A) in the video card and is then transmitted to the LCD as analog, where it's converted back from analog to digital (A-D). This D-A <-> A-D conversion often results in fuzzy images or ghosting.
If Trinitron monitors are your choice, don't purchase the lowest end model in any size, as they don't generally don't support the higher refresh rates. For 17" I recommend the GDM-200PS, and the GDM-400PS for the 19".
Whilst the PC industry has common support for two competing drive interface standards, SCSI and ATA/(E)IDE, there is no question that ATA/(E)IDE should be avoided and SCSI-only solutions used instead.
IDE was originally designed to connect up to two hard disks to a PC. It depends upon the CPU to do a lot of the work when transferring data, and whilst benchmarks under single tasking operating systems may indicate otherwise, the performance under load in a pre-emptive multi-tasking system leaves a lot to be desired. EIDE attempts to rectify some of these pitfalls by allowing four devices (which may be CD-ROMs as well as hard disks), but the performance is still less than that of an equivalent SCSI system.
Most people familiar with workstation hardware will be familiar with SCSI, and another advantage of SCSI is the reusability of hardware between platforms.
SCSI comes in a variety of device interface types, including:
Active termination should always be used, as it increases the reliability of the data transfers. Cable lengths should be kept to a minimum.
If you have older narrow devices such as CD-ROMs or tape drives, and a couple of fast/wide disks, it is advised that a separate card is obtained for the legacy devices. This can reduce/prevent problems that may be caused by interaction between wide and narrow devices; the wide to narrow cable convertors don't always function very well.
The SCSI controller should have a PCI bus. ISA bus SCSI cards are limited to approximately 1.3MB/s, which is suitiable only for CD-ROMs slower than 6-speed, or tape drives (non-DLT or other high speed tapes).
Some common PCI SCSI implementations are:
There doesn't seem to be much support for the various hardware RAID cards that are available.
Whilst many vendors make SCSI disks, people have their favourite implementations. My experience indicates that, in general, IBM makes as reliable drives as any other vendor. Always purchase drives with a five year warranty.
High performance can be obtained using the 10000rpm UltraStar disks, Ensure that adequate cooling is used (refer to the manual), and leave enough separation between each disk to ensure airflow is maintained. I've found that the 7200rpm versions of these drives are still quite fast whilst being relatively cool and quiet.
Cheaper disks should be avoided; they often have a hidden gotchas such as a very small on-disk cache which reduces performance, or have lower long-term reliability.
Most software is now shipped on CD-ROMs, so a SCSI CD-ROM drive is almost a necessity.
Backups are mandatory, and there's a large variety in the technology available. Common formats include:
I'd use DAT for lower end systems with less than about 8GB of capacity. Once 10GB or more of backup capacity is required, seriously investigate using DLT drives.
Further information on determining which SCSI hard disk and tape drives to purchase can be found in [1]. A great explanation of determining the performance of modern hard disks is also given.
The four main networking technologies (in ascending order of speed, and descending order of occurrance) are: 10base-X ethernet, 100base-T ethernet, Gigabit ethernet, FDDI/CDDI, and ATM.
10base-X cards are becoming less common with the prevalence of good-quality cheap 100base-X cards. I wouldn't bother with a 10base-X card today.
Many vendors are releasing 100base-T cards, or combination 10/100base-T cards. Chipsets which are well regarded are the Compaq/Digital's DC21140 "Tulip" chipsets and clones, Intel's i82557 chipset, and 3Com's 3c90x based cards.
Gigabit ethernet is starting to appear in high-end systems. There are two common connection types; the more common 1000base-SX which is for shorter runs and 1000base-LX for longer connections. Be aware that most systems cannot approach the performance required for sustained gigabit ethernet, and that a 64-bit 66MHz PCI card is required on systems that can.
Whilst 100base-T is popular as the high-speed networking solution, FDDI is still used in places. Compaq/Digital have a chipset FDDI solution, sometimes referred to as DEC PDQ FDDI. PCI cards based on this are the DEC DEFPA PCI FDDI card. These cards are regarded highly, but I have had favourable experiences with the equivalent for other bus architectures/platforms (e.g, the DEFTA cards for TurboChannel based DECstations).
I don't have any experience with ATM, ISDN, or X-25 cards. Further research into these technologies is required...
There is a large variety of cases available, both in quality of manufacture and case design.
Avoid a case that appears to be made from thin gauge metal that is rivetted together; larger pieces of thicker gauge pressed metal are usually stronger and easier to work with. Another indicator of lack of quality is unfinished edges with sharp burrs; I've cut my fingers many times on cases in this category.
The power supply should be at least 250W. Even if your requirements aren't that great, there will be less stress on the unit if it's not running at its rated capacity.
If you choose an ATX motherboard, get an ATX case and power supply. The motherboard will mount more securely, and will run cooler because the on-board 5.0V-3.3V regulator won't be in use.
Be aware that with current non-ATX motherboards, there are many different form factors that all pretend to fit one of two common standards with respect to location of mounting holes:
With this is mind, don't be too alarmed if you can't put mounting pegs or risers under all of the mounting holes on the motherboard. At least attempt to get an even distribution of mounting points for stability.
Not all PC cards are of the same height either, and you may find that the mounting brackets of some cards vary up to 5mm from that of the other cards. Ensure that the card has a firm fit, and if necessary, re-bend the top mounting point to suit.
Ventilation is important - airflow is required to keep components cool. A "push-pull" arrangement is preferred; whereby fans are located at either ends of the case and force the airflow to follow a specific path. The most critical components to cool (usually disks) should be placed to take advantage of this.
Choose a keyboard that suits you. Honeywell are highly regarded, and the Microsoft ergonomic keyboard is either loved or hated by those with touch-typing skills. The keyboard interface is one of: the old-style 5-pin DIN connector, a PS/2 connector, or a Universal Serial Bus (USB) connector. Choose what is most appropriate for your requirements and long-term needs.
If you just require a two button mouse, then I've found that Microsoft's ergonomic mouse is a good reliable choice. Ironically, some of Microsoft's most reliable products are hardware...
Logitech make a variety of three button mice that are good if you need the extra button.
Mice may have a serial, PS/2, or USB interface. It's usually easier to obtain serial mice, and they're easier to debug as well.
Most modern motherboards have on-board serial, parallel and floppy controllers. The serial chip should be using a "NS16550A" or compatible UART, which has a FIFO, thus allowing speeds of 115200bps to be sustained. The combination "super-I/O" chip used in most modern motherboards meets this criteria.
The parallel port is usually just used to drive a printer, and there shouldn't be any compatibility problems with it.
A 3.5" floppy is probably necessary for software installation and data transfer. A server probably won't need the floppy much, so it could be removed after the system is functional to reduce the amount of dust that can enter through the dust cover.
Like graphics cards, there is a great variety in sound cards. The most supported cards are the Creative SoundBlasters. However, I find the audio quality is often sub-standard when using good speakers or headphones, due to the low quality digital-analog circuitry.
Some of the limitations of using PC hardware for Open Systems include:
Someone needs to come up with a motherboard that supports a command line text interface which can switch between serial and VGA text mode configuration, which supports specifying which device to boot off and running rudimentry tests (a'la Sun's OPENPROM or DEC's SRM firmware). Maybe one day...
Know what you're purchasing. Investigate support for a product in the relevant "Compatibility guide" for your target OS. Even the best vendors occasionally release "lemons" which end up having more compatibility problems than they're worth.
It is often useful to "track" your target OS for a while, following various discussion forums, looking for other experiences with particular hardware that you're interested in.
Be aware that there is too much variety in the PC industry, and that this can cause many compatibility and support problems.
In general; avoid variety between your systems - standardise on components, test them, and keep using them for as long as possible.
Thanks to Darrell Elton of Latrobe Uni, for invaluable advice on how to write a paper and prepare a talk, as well as information on workings of electronic toys in general. Also, talking to Rudi Heitbaum over the years has broadened my knowledge of PC hardware.
However, any errors in this paper are solely mine; no-one can take that from me. :)
[1] |
Paul Vixie, "Hardware Configurations for BSD/OS", http://www.vix.com/pc-hw/bsd-os-hwconfig.html |
[2] |
Lee A. Butler, "Snake Oil, Miracle Cures, and Computer Monitors", http://hawks.ha.md.us/hardware/monitors.html |
[3] |
Using off-the-shelf PC hardware for Open Systems http://www.mewburn.net/luke/talks/auug-97/ (The original version of this paper.) |
[4] |
ASUS Technologies home page, http://www.asus.com.tw/ |