For these tests, I dug out Igor, an old PC that had been collecting dust in my closet. Igor is a Pentium II 233MHz machine with 64MB of RAM, an 8x CD-ROM drive, a 3GB hard drive, and an integrated ATI 3D Rage Pro video card with 4MB of video RAM. You can run Linux on older and slower machines, but this is the most under-powered machine I had available.
Next, I selected a handful of lightweight Linux distributions that looked promising, and started downloading. The distributions ranged from popular "mainstream" distros such as Slackware and Debian to distros that are specifically developed for lightweight machines, such as Damn Small Linux (DSL). I apologize in advance if your favorite lightweight distro is not represented here.
I started the tests off with Slackware Linux 10.2. Though Slackware isn't specifically geared to lightweight machines, it's well-suited for older hardware. Slackware's installer had no problem with the Pentium II machine. It took about an hour to install a set of packages on the test machine. As a rule, when I install Slackware, I often go for the full install, but with only 3GB to work with, I was a bit more careful. I wound up with about 800MB free, though careful selection of package sets could trim that down even further.
Slackware includes a good selection of lightweight window managers, including Xfce, Fluxbox, and FVWM. On Slackware, I spent most of my time in Fluxbox, which proved to be a very usable desktop, even with limited resources.
Slackware comes with the typical assortment of desktop software, some of which ran well on the old machine, while some ran slowly. In many cases, applications would take forever (okay, a minute or so) to start up, but then run fairly well afterwards. Firefox, for example, takes far longer to start on this machine than I'd like, though it runs okay once it's up.
ZipSlack is another Slackware-based distribution for older hardware, and newer hardware as well if the machine has a FAT partition. It's designed to run out of a directory on a FAT partition, which makes it an easy distro to start with if you've got an old machine that still runs Windows 95 or Windows 98.
The entire ZipSlack distro should fit within 100MB of disk space. I recommend this one only for users with an older Windows machine who want to test-drive Linux. Using Linux on a FAT partition isn't optimal and comes with some performance drawbacks, but it's worth trying just to get a feel for Linux.
Overall, Slackware makes a pretty good distro for lightweight machines. Its hardware requirements are fairly modest (486 or better CPU, 32MB of RAM minimum, 500MB of free disk space), and the package selection is good for lightweight machines. Although Slackware isn't specifically tailored for lightweight machines, it's obvious from Slackware's modest system requirements that developer Patrick Volkerding is still looking to make Slackware usable on older machines.
Debian Linux is also suitable for machines with modest amounts of memory, though it's not the first distro I'd recommend for users who are unfamiliar with Linux. I tested Debian's Sarge release.
Debian's text-mode installer, like Slackware's, is right at home on older hardware. I selected the Desktop package collection, which provided X and a desktop environment. I used the netinstall image, and it took quite a while for all the packages to download and unpack on Igor. If you're installing Debian in this fashion on older hardware, I suggest going out for a pizza when you get to the download stage.
After everything was unpacked, I found that Debian's desktop defaults included GNOME and KDE. Out of curiosity, I tried both desktop environments to see how they'd handle on a system with limited memory. To my surprise, they were fairly usable, though not exactly snappy. After a while, I installed Blackbox instead. After a quick apt-get install blackbox I logged out of GNOME and found that the GNOME Display Manager (GDM) now had an entry for Blackbox. It was much faster.
Debian's package collection is huge. It includes many lightweight apps that are well-suited to slower machines. (It also has plenty of full-featured apps that are best used with faster machines.) It's too bad that there isn't a "lightweight desktop" task that users can select to install lightweight applications, but if you know what you're looking for, it should be easy enough to find suitable apps in Debian.
Damn Small Linux
Damn Small Linux (DSL) is a damn fine Linux distro. This was the first time I used DSL for any period of time, and I was impressed by what the DSL developers have managed to fit into a 50MB download.
You can run DSL as a live CD distro, or install it to the hard drive, USB media, or even run it inside Windows or Linux. See the DSL FAQ to find out which image you want to download.
After burning the CD, I whipped it into Igor's drive and took DSL for a spin. Even when it's running as a live CD, DSL's performance was really good on this tired old machine.
Installing DSL to a hard drive or other media is easy. DSL includes scripts to install directly to a hard drive, but it isn't an installer in the sense that most Linux users are used to; instead, it's pretty much a one-shot deal. Even on an old machine, the install only takes a few minutes.
You can use APT with DSL, or you can use the MyDSL application to download apps ("extensions") for use with DSL. MyDSL is intuitive, and allows you to install new apps even when you're running DSL as a live CD. If you download new apps, you'll need to restart the window manager for them to show up in the application menus. DSL packs a lot into 50MB, but MyDSL provides a lot more.
If you're interested in this type of operating system, DSL has spawned a number of similar distros, though many seem to be inactive at this point.
DSL should be one of the first distros you consider for putting older hardware to work.
Next: Puppy, Vector, and STX
Puppy Linux is specifically tailored for older hardware. Puppy will run from a CD-ROM, USB flash drive, Zip drive, or hard drive. After booting Puppy and playing with it on the CD-ROM for a bit, I ran the installer and whipped Puppy onto the hard drive.
Puppy's installer is a bit different from what most Linux users may be used to, and it's a little tricky. You'll need a free partition if you want to install it to the hard drive, but this partition can't be seen as an Ext2 partition, or Puppy will mount it during boot and refuse to use the partition to install to. I had to run fdisk, change the partition to something Puppy wouldn't recognize, then reboot into Puppy again and run the installer. Puppy also makes use of the diskette drive, so you'll need to have one in the target machine.
Once Puppy is installed on a hard drive, it's amazingly speedy and takes up less than 100MB of disk space. Obviously, this is a good thing when you're working with a 3GB hard drive.
Puppy uses the FVWM-95 and JWM window managers. Both have a similar look and feel to Windows 9x and are fairly minimal. I spent most of my time in JWM and was surprised just how snappy it was on such an old machine. Some of the applications were a bit slow, but overall I found Puppy to be very usable on this machine.
The default selection of packages for Puppy includes the Mozilla suite, Gaim, AbiWord, Scribus, Bluefish, Sylpheed, and much more. If Puppy doesn't have the application you're looking for installed by default, it has a way to install apps even when you're running from the live CD. The PupGet package manager offers additional packages that aren't installed with Puppy, such as Tuxcards and the abs spreadsheet application. PupGet offers two download options, iBiblio and nlugg.nl, but the iBiblio repository was out of order when I tried it.
Puppy also features a "Wizard Wizard," which is a collection of wizards for typical administration tasks such as changing the display resolution, setting up the Ethernet interface, connecting via dial-up, or setting up a firewall.
Puppy is a great distro for older machines and well worth trying if you're using an aging desktop machine.
Vector Linux is a Slackware-derived distribution that's more user-friendly than Slack itself. The installer is based on Slackware's, though it's somewhat streamlined and throws in a dash of humor. Vector Linux also offers more than its progenitor in the way of hardware detection, so I'd recommend it over Slackware for Linux newbies.
The packages that come with Vector Linux are a good fit for low-end hardware. It includes Fluxbox, Xfce, and IceWM, which all proved to be reasonably fast on my test machine. While testing Vector, I spent most of my time in IceWM. IceWM's initial theme had an odd unattractive drop-shadow thing going on, but other than that it was a decent window manager for older hardware.
Vector includes much of the software that most users would want on a desktop -- Firefox, Gaim, XMMS, MPlayer, AbiWord, and a number of other desktop multimedia and productivity apps. I was surprised to find that the Gnumeric spreadsheet wasn't available in the default set of packages or through the default Vector repository.
Programs like Firefox tended to be a bit slow under Vector, and running several applications at once (more than three or four, and depending on the heft of the application) tended to bog the system down. Programs such as Dillo, X-Chat, and AbiWord ran fast enough to be usable.
Dillo is almost good enough to use full-time as a Web browser, but the Vector package doesn't come with SSL enabled. This rules out using it for a number of sites, such as online shopping or checking your Webmail over a secure connection.
Vector has some nice administrative tools, such as the GSlapt package management application, which make life easier for new users. GSlapt isn't as slick or user-friendly as Synaptic, but it gets the job done.
The Vector team recommends at least 32MB of RAM and about 1GB of hard disk space. Vector is a strong candidate for users who want to run Linux on older hardware. Although I'd recommend first looking at Puppy and DSL, Vector is a good option as well.
Slackware is a popular base for lightweight Linux distros. The STX Linux distro is based on Slackware and Puppy Linux.
The STX Control Centre is a useful tool for managing the distro. It includes modules to manage software, change the video resolution, manage startup services, configure networking, and more. I was impressed that its Display Settings wizard includes an option for configuring a dual-head setup. Even though dual-head displays have become more common over the years, many distros don't include good tools for managing more than a single display.
STX uses GSlapt to install packages from an online repository, gnome-pkgtool to manage Slackware packages that are already installed, or to install Slack packages you've downloaded from another source, and has a wizard that supports installing RPM files. This should make it easy for users to work with packages, though it may get a little confusing to juggle three separate apps.
I used GSlapt to install Epiphany on STX. I was disappointed to see that after the process finished, Epiphany wasn't added to the STX application menus.
STX installs a fair amount of productivity and multimedia software, including a few programs I didn't see on other lightweight distros. For instance, instead of AbiWord, STX ships the TextMaker word processor. TextMaker is nagware -- each time you start the application, it asks if you'd like to register it. According to the STX site, TextMaker is freeware for personal use, but the SoftMaker site offers only a crippleware version that cannot save Word or RTF docs. The version shipped with STX doesn't seem to be limited, and it is a fast program even on Igor, but I'd prefer AbiWord or another program that doesn't nag me each time I open it. Fortunately, AbiWord is available in the Slapt repository.
The default desktop for STX is the Equinox Desktop Environment. It looks and feels a great deal like Windows 9x and was very responsive on Igor.
Rather than including Firefox, STX includes the Mozilla application suite for browsing and email. I didn't notice much of a performance difference between Firefox and Mozilla, as both were fairly slow on Igor. Epiphany fared a little better, but not a great deal.
STX requires a Pentium or better CPU, 32MB of RAM, and 2GB of hard disk space and at least 100MB of swap space. The actual install consumes about 1.5GB of hard disk space when all is said and done, but it would be best to give STX a little breathing room.
Next: Using Linux as an X terminal or thin client
Older hardware can also be used to set up a cheap X terminal. Rather than trying to run all your applications locally, install a lightweight Linux distro on older hardware and export your X application to the local machine. For instance, you could run OpenOffice.org on a newer machine, but export it to display on an older machine. The performance impact is minimal, and application performance is usually very good as long as you're on a fast network.
You can also set up XDMCP to run the entire X session from a faster machine, and simply use the older hardware to display the X session. It doesn't take much horsepower if all that's required is to display the X session on the local client.
PXES Linux Thin Client
The PXES Linux Thin Client live CD is a good way to get started with this. It's a small download, about 17MB, and all you need to do is boot from the CD and select the XDM option.
PXES takes a little know-how to get everything set up correctly. By default, it assumes each client has a maximum resolution of 800x600, which is close to intolerable for most applications. However, the complete documentation explains how to configure PXES. Though I tested PXES only as an XDMCP client, it also works with VNC, and even the Microsoft Windows Remote Desktop Protocol (RDP), Citrix ICA, and NoMachine NX -- so PXES could be used with Windows, or any OS that supports VNC.
I set up XDMCP on my Ubuntu workstation and logged in to a desktop session on Igor running on the Ubuntu workstation. The performance was impressive -- it was just like working at the workstation itself. If you have a relatively robust workstation or server, it shouldn't be hard to power three or four PXES clients on older hardware.
If you're trying to make use of a number of older machines, check out the Linux Terminal Server Project (LTSP). Quite a few organizations use LTSP to cut hardware and administration costs, and it's well worth a look if you want to use Linux thin clients across a lot of desktops.
Other lightweight operating systems
Of course, Linux isn't the only operating system that runs well on older hardware. The BSD variants -- FreeBSD, OpenBSD, NetBSD, DragonFly, and PC-BSD -- all have similar hardware requirements to Linux. If you prefer to run a BSD flavor, you shouldn't have any problem finding a BSD that fits your needs.
If DOS is more your speed, the FreeDOS project might be a good option for older hardware.
It's worth mentioning that Linux is also a great option for putting old non-x86 hardware to use. I have a few old Sun UltraSPARC 10 machines with 256MB of RAM that run Debian Linux just fine. I also have an old, green iMac that runs Debian and other PowerPC distros well enough -- but Windows isn't an option for those machines at all.
If you want to make the best of old hardware, processor speed is much less important than RAM for Linux. If you can't afford a new machine, but can afford to max out your RAM, you'll see much better performance. I wouldn't recommend running a Linux desktop with less than 64MB of RAM, and 128MB is enough for most applications.
While Linux is good for bringing new life to old hardware, users may need to make some concessions for really old machines. Most applications aren't written with older machines in mind. If you want to use a desktop environment on a machine that's nearly 10 years old, it will probably require some patience on your part. If you don't mind waiting 20 or 30 seconds for an application to start up, older machines will probably suit you just fine.
You may also run into limitations in terms of what devices you can use with the hardware. For instance, my test machine doesn't have USB ports. Sometimes older hardware can be advantageous, though -- finding drivers for cutting-edge hardware is sometimes difficult, but that four-year old video card should be well-supported by now.
If you want or need to keep using hardware past its expected life span, it should be obvious that it isn't going to keep up with today's hardware. Whether you're using Linux, Windows, Mac OS X, BSD, or something else, most of the applications being written for these platforms require additional resources with each release.
That said, many lightweight open source application alternatives exist for users who want to use older hardware. KDE and GNOME may not be suitable for older hardware, but Fluxbox, Xfce, FVWM, IceWM, and other window managers are just fine. Lightweight GUI applications and console apps also shine on older hardware. OpenOffice.org may be sluggish on older machines, but AbiWord runs well on less robust hardware, as does Siag Office -- and it's hard to notice a difference at all when you're using Vim or Mutt. Older machines also make excellent file servers, firewalls, and routers.
Multimedia is also going to be iffy, at best, on older machines. For instance, if you want to watch DVDs on your desktop, it's probably worth spending the cash for a newer system.
I also want to emphasize the need for regular backups on equipment that is far past the life of its warranty. For example, many hard drives fail within three or four years of purchase, so if you're using a hard drive that's twice that age, it is absolutely vital to keep regular backups.
The bottom line is that Linux and open source software make it possible to continue using older hardware. Some distributions may be unsuitable for older hardware, but suitable choices do exist. Thanks to Linux and open source software, hardware can remain useful for many years beyond the date when it would be obsolete in the Windows and proprietary software world.