These days you have to be more and more creative when tackling home technology projects because the inventory of raw material—second-hand technology—is changing so rapidly. Market and product cycles continue to shrink, standard form factors are being discarded to drive down costs, and pricing is becoming more dependent on market value and less on direct manufacturing cost. As a result, standard modular building blocks are disappearing. New alternative uses for obsolete or low-price products are emerging, however. I enjoy finding ways to extract new value from new or used hardware platforms, so I think it’s still a good time to be a technology hobbyist.
When I first started developing a home IT infrastructure, PCs in standard form factors were readily available in the used marketplace. AT and ATX enclosures were ubiquitous, and all that you had to do to create a home server was to collect the relevant used parts and install them in a second-hand box. That’s not so easy anymore. Notwithstanding that the majority of PCs sold today are laptops, most desktop systems are now being sold by Dell and HP and use proprietary form factors to reduce cost. Where I used to have my pick of second-hand desktop enclosures for servers, used standard form-factor boxes are getting harder and harder to find. Recently I was forced to perform the ultimate unnatural act of a hobbyist: I actually had to purchase a brand-new case. Shudder.
But it is not all bad. In looking for inexpensive client machines to run off of my home media server, I found used Microsoft Xboxes to be a great hardware bargain. Available for around $100, the original Xbox consists of a 733-MHz Intel Pentium III processor, 64 MB of memory, an 8-GB disk, DVD drive, Nvidia GPU, Ethernet, and an MPEG decoder—all in a package that has no fans. Microsoft’s business model seems to have been to sell the hardware at a discount and make back its margins on fees charged to the game companies. To protect that model, the architecture is restricted to work only with Microsoft-approved games.
As long as the restriction is in place, this approach works well. When the restriction is bypassed, you have a superior media client selling at a price point below the cost of the hardware. Even before the Xbox 360 was released, creative folks legally produced both commercial hardware products and software-only mechanisms to lift those restrictions to, among other things, run an unrestricted version of Linux. With the release of the Xbox 360, the original Xbox prices on the used market have dropped even further. The result is an inexpensive media client that is getting even more inexpensive because retail pricing is based on something other than its material costs. It’s a hobbyist’s dream.
Another example is the home firewall/router. In an earlier column (“Rationalizing a Home Terabyte Server,” September 2006), I discussed how I built my own router from an old 486 PC and other spare parts, hand-configuring the firewall script and NAT (network address translation) in an early version of Redhat Linux. In that article I discussed how one day I finally relented and purchased a purpose-built router from Linksys.
The Linksys router that I own has a 200-MHz MIPS processor, 32 MB of RAM, and 8 MB of persistent memory (flash). Before the Internet gained wide popularity, about 10 or 12 years ago, that configuration was a pretty substantial machine. You could run a sizable BBS (bulletin board service) on such a system.
Cisco bought Linksys to have a consumer-grade router appliance product. Because its underlying firmware is Linux-based, Linksys and Cisco met their obligations under the GPL (GNU General Public License) and published the router source code. Open source programmers have reviewed those sources and developed their own third-party firmware with functionality that rivals that of large commercial routers costing much, much more.
With the chipset and overall architecture replicated by a number of vendors—some with USB—low-power server application appliance platforms with a full Linux port are now available to address a wide variety of tasks. Just as in my example of the home 486-based PC router, I decided that given its always-on status, running on a low-power, small form-factor, platform would be cheaper and easier. The same can be true of other application areas. A few examples of items that are available today or have been discussed for the Linksys (and clones) router platform are: Asterisk open source PBXs, autonomous robotics controllers, and milling machine controllers. I think this is just the tip of the iceberg for small form-factor, low-power, application server appliances.
It’s not just consumer-grade routers that people are repurposing to be dedicated application appliances. Inside many consumer electronic devices beats the heart of a general-purpose computer, and many have Linux ports. In the same way that consumer-grade routers are becoming de facto server application appliance platforms, your music player, for example, can become a hand-held application appliance.
The most recognizable one of this group, of course, is the iPod. A quick review shows a selection of applications: Tetris, BlackJack, DTMF (Touchtone) dialer, machinist calculator, Doom, Go, Web mashups, word processor (see for yourself—the list is very long: http://www.ipodlinux.org/Special:Module).
My point is that even though desktop computers continue to grow in performance with higher clock speeds, multiple cores, and large memories, it is important to remember that most of that resource is being sucked up by bloated operating systems, user interfaces, or graphics- or video-intensive applications. The availability of these high-performance processors leaves in their wake slower machines with low power requirements and small form factors. They are relatively low priced and have achieved a level of performance that is more than adequate for a wide range of interesting applications. Something similar is happening in commercial IT with specialized network appliances being based on commercial-grade PCs running Linux or an equivalent.
I believe what we are seeing is the beginning of a new trend: application-centric computing using inexpensive, small form-factor, low-power platforms, linked or not to the network, to address a new set of interesting needs. It’s a good time to be a hobbyist.
MACHE CREEGER ([email protected]) is a 30-year technology industry veteran based in Silicon Valley. He is the principal of Emergent Technology Associates, marketing and business development consultants to technology companies worldwide.
Originally published in Queue vol. 5, no. 2—
Comment on this article in the ACM Digital Library
Michael Mattioli - FPGAs in Client Compute Hardware
FPGAs (field-programmable gate arrays) are remarkably versatile. They are used in a wide variety of applications and industries where use of ASICs (application-specific integrated circuits) is less economically feasible. Despite the area, cost, and power challenges designers face when integrating FPGAs into devices, they provide significant security and performance benefits. Many of these benefits can be realized in client compute hardware such as laptops, tablets, and smartphones.
Christoph Lameter - NUMA (Non-Uniform Memory Access): An Overview
NUMA (non-uniform memory access) is the phenomenon that memory at various points in the address space of a processor have different performance characteristics. At current processor speeds, the signal path length from the processor to memory plays a significant role. Increased signal path length not only increases latency to memory but also quickly becomes a throughput bottleneck if the signal path is shared by multiple processors. The performance differences to memory were noticeable first on large-scale systems where data paths were spanning motherboards or chassis. These systems required modified operating-system kernels with NUMA support that explicitly understood the topological properties of the system’s memory (such as the chassis in which a region of memory was located) in order to avoid excessively long signal path lengths.
Bill Hsu, Marc Sosnick-Pérez - Realtime GPU Audio
Today’s CPUs are capable of supporting realtime audio for many popular applications, but some compute-intensive audio applications require hardware acceleration. This article looks at some realtime sound-synthesis applications and shares the authors’ experiences implementing them on GPUs (graphics processing units).
David Bacon, Rodric Rabbah, Sunil Shukla - FPGA Programming for the Masses
When looking at how hardware influences computing performance, we have GPPs (general-purpose processors) on one end of the spectrum and ASICs (application-specific integrated circuits) on the other. Processors are highly programmable but often inefficient in terms of power and performance. ASICs implement a dedicated and fixed function and provide the best power and performance characteristics, but any functional change requires a complete (and extremely expensive) re-spinning of the circuits.