An excellent reference on building Linux systems is Building the Perfect Box: How to Design Your Linux Workstation, written by Eric Raymond.
It contains some essential principles that hold very true, despite the fact that there have been some hardware improvements since the time at which it was written.
The base axiom is: " Contrary to what CPU sales people would tell you, system performance is typically I/O bound, and not CPU bound."
While not universally true, this is true for the vast majority of computer systems. Even with CPU-bound processing, the 300MHz Pentium II processor currently reigning as "state of the art" in the Intel world can process things up to 3.5 times faster than one can do memory fetches across the 66MHz PCI bus. The situation is even more extreme with Digital's 500MHz+ Alpha CPUs. In order to get any kind of performance they need to have lots of L1/L2 cache...
Of course, that has gotten remarkably dated; we now have "multiple GHz" systems. But all the same, CPUs have continued to increase in speed greatly more than memory buses have.
The ideal CPU-power-per-dollar ratio for the average I/O-bound system usually comes from buying the CPU that is one or even two steps away from the state-of-the-art;
Spend some of the difference on RAM, as disk caching will likely more than make up for the loss of CPU power;
SCSI provides substantially better I/O performance than IDE, and is worth a degree of price premium. If I/O is really important, then the price premium is well worth paying.
At the time that the article was written, P166 machines were "state-of-the-art," and P133s were getting pretty cheap. In November 1997, it's Pentium II-300's that are "big, bad, and expensive" and P200s are pretty cheap. (Particularly if you consider the AMD or Cyrix "clones.") In late 1998, it it is "PII 450's" that are fast and expensive, while PII-300's are cheap.
The latest major change is that Intel is trying to eliminate socket-compatible chips by its move to Pentium Pro and Pentium 2. The new designs provide the putative advantage of improved cacheing at the cost that motherboard manufacturers now have two more mutually-incompatible motherboard designs to play with. My tendancy is to rebel and use "Socket 7" Cyrix/AMD CPUs instead.
![]() | Note that the principle of "buy less CPU, buy more RAM" may be true even in some situations where applications are CPU-intensive. CPU-intensive applications do a lot of updating of memory. Buying more memory and perhaps looking at a better motherboard and tuning memory access time may still beats out getting a faster CPU. If the CPU is waiting to fetch an instruction a 66MHz PCI bus, the wait time doesn't depend very much on whether it is a P133 or a P233 processor... |
Designing a Linux Machine provides a somewhat more recent presentation from a British perspective.
I have an Olympus 320L digital camera; this material represented useful research material towards decisionmaking in my purchase.
Digital cameras do not provide, at present, even at the really high end, as good resolution as you can get from a 35MM camera.
However, they do allow instant "development" of shots, allow the user to discard unwanted pictures at no cost, and are perfect for populating web pages with images.
Many of them seem to use the same communications protocols, which certainly eases the process of putting together software to connect them to Linux-based machines as well as other systems that have similar resemblance to Unix.
A free suite of Digital Photography software
serial communication protocol of QV-10 and QV-100 (Digital Cameras)
PhotoPC Tool (www.average.org)
These tools are known to work with cameras based on a "Fujitsu" chipset, that include cameras from Agfa, Epson, and Olympus. Sanyo cameras should also be supported; this is thus far untested.
Linux software for Agfa ePhoto 307
<bousch%linotte.uucp@topo.math.u-psud.fr>
Thierry Bousch has reported that this software also works with
the Olympus Camedia C-410L, and that Agfa, Epson, Olympus and Sanyo
digital cameras seem to share the same protocols...
Sundry Digital Camera drivers including Ricoh DC-3/DC-300
The Polaroid DMC is a fairly high-end CCD camera designed for microscopy. Unfortunately, it only comes with Windoze or Mac software. Fortunately, David Skoll (of Remind fame) has written a driver that works with Linux, and probably with other Unix-like systems...
Washington Photo Server - A web enabled, multi-threaded photo server that works with Kodak DC200 and DC210 digital cameras
Not Linux related; this has sundry general Digital Camera information.
Apparently this camera uses a SPARC CPU as do Sanyo, Epson, Agfa cameras...
Google search for +Digital +Camera +Linux Google search for +Digital +Camera +Linux
It only has minimal (if any) connection to Linux, but lists information about a whole lot of digital cameras, which may be useful to those doing a general census of cameras out there...
I've got a UMAX S6E. It works, but I haven't used it much. It would be made really useful if there were more Electronic Document Management System (EDMS) software available.
cdlabelgen Perl-based CD label generator
This will provide support for DVD ("Next Generation CD-ROM.") Other buzzwords: OSTA-UDF (Optical Storage Technologly Association - Universal Disk Format). OSTA-UDF is based on ISO 13346, a superset of ISO 9660.
While largely eclipsed by X, there is still some effort going into continued development of this low-footprint graphics system.
A site that attempts to catalogue conspicuous incompatibilities of hardware with Linux.
How to Tell What Type of Memory Your Linux PC Has Installed - How-To Geek
This tells about the use of system analysis tools you mightn't have been aware you had handy!
Several projects have come along that seek to do the same for hardware designs that the FSF has done for software; they seek to provide designs for CPUs and the likes that are available under "free" licenses so that anyone may, free of royalties, build and improve these designs.
It is an interesting idea, and it would be quite nice if it actually turned into something. Unfortunately, integrating these designs so as to construct systems is a dauntingly complex task, and it does not become economically viable unless they can set up production runs of on the order of hundreds of thousands of units, which is a costly endeavor.
But we can dream a little, can't we?
F-CPU A GNU/GPLed 64-bit CPU architecture
This project intends to design and construct a 64 bit CPU with performance characteristics similar to Intel's IA-64/"Merced" architecture, to be pin compatible with one of the prevailing motherboards, and release the chip design under the GPL.
The proponents predict that they can get chips fabricated for on the order of $100 apiece; this would be a rather interesting approach to ensuring availability of some cheap, fast CPUs for Linux systems.
OPENCORES.ORG is a repository of open source, free IP synthesizable blocks and supplemental prototype boards. Most of our cores are currently under development but some are already available.
The initial plan is to come up with a PCI-based computer design where the electronic component designs are freely available. This will include motherboard, CPU, SDRAM controller, and communications controllers.
LEON - SPARC-Compatible Processor
A "SPARC-Compatible" CPU whose design is available in VHDL form under the LGPL.
See also my page on PalmPilot Linux tools
The Open Hardware Certification Program
In response to the I2O problem, Software in the Public Interest (largely made up of people involved with the Debian Project) have created the OpenHardware Certification Program in order to advocate open release of interfacing information for computer hardware. There are a number of vendors (most notably Digital Equipment Corporation) that are vendor participants.
Recommended Color printer: Epson Stylus 500
See Linux Gazette 19 for information on configuration
Multitech is a modem manufacturer known to be Unix-friendly and more particularly Linux-friendly. (Unlike certain other bigger-name manufacturers that produce such things as "WinModems" or "MWAVE" modems that cannot be compatible with platforms other than Microsoft Windows.)
The Network Audio System (NAS)
The Network Audio System is a network transparent, client/server audio transport system. It can be described as the audio equivalent of an X server.
It remained untouched between 1996 and early 2000, as an X-related standard that was essentially "lost" at the time that X moved from the X Consortium to The Open Group.
New revisions have come out in 2000.
ESD - Enlightened Sound Daemon
The Enlightened Sound Daemon mixes several audio streams for playback by a single audio device. You can also pre-load samples, and play them back without having to send all the data for the sound. Network transparency is also built in, so you can play sounds on one machine, and listen to them on another.
WinDriver - The Device Driver Development Toolkit (For Linux and Win32)
Promoting motherboards for Linux-based systems based on the "OpenPPC" motherboard design released by IBM.
NLX Generic Riser Card Design Overview
This is a PCI motherboard form factor design for building compact computer systems. I periodically idly consider the idea of getting some such compact system.
A compact PC system - $450
Other compact computer hardware
HotBits: Genuine Random Numbers
A web server that will serve you up Truly Random Numbers produced by a radiation source.
This tends to be useful for cryptographical applications. Unfortunately those applications generally require that the hardware be under tight (to the point of paranoia) local control; a public server that could report numbers to other destinations is a bit useless to this purpose.
The generation techniques may be worth learning from, though...
Linux kernel support for broken RAM modules
... Thereby allowing RAM with some flakey bits to remain useful ...