By now, we have established a vocabulary with which we can discuss distributions and their strengths and weaknesses, and thus understand the best uses for them given our needs and resources. So in this article, I’ll talk about some actual “fully lightweight” distributions (for those who didn’t read the last article, “fully lightweight” refers to distros that are built from the ground-up to be small and fast. It doesn’t include lightweight remixes or spinoffs of other distros).
I want to preface this by saying that distributions can be an emotional topic for some, and in the process of summarizing a project’s strengths and weaknesses it’s easy to paint with too broad a brush. I don’t lay claim to an exhaustive knowledge of lightweight distros, but I tinker with a few as a hobby, and these are the ones I am familiar with to some degree. So, to all the fanboys, compulsive correctors, and Jeff Albertson types out there: relax and just roll with my wild over-generalizations.
NOTE: though I’ve used some of these distros on a variety of hardware, my reference installations for this article were done on a Pentium III laptop with 512MB of RAM and a 10 GB hard drive.
Meet the distros!
Our first round of distros are the “ultra-lightweight” crowd, featuring small disc images, low RAM usage, and a selection of applications suitable for older, low-powered computers. These will mostly be of interest to those working with prehistoric, senior citizen, or possibly distinguished computers.
TinyCore is easily the smallest Linux distribution in development today, coming in at a microscopic 10 MB for the core system. Yet even in this small space, TinyCore boasts an attractive, functional (if minimalist) desktop, an installer, a package manager, and a set of graphical configuration tools. Pretty astounding!
TinyCore achieves this small size through the use of a stripped-down Linux kernel, the busybox shell, XVesa, and a minimal desktop environment based on a very small graphics library (FLTK) — and, by installing not a whole else.
There’s more to TinyCore than just small size, though; it has some interesting approaches to package management and system architecture. The core system is only two files — a kernel, and an archive of the base file system. Installed applications are store in their own separate archive files and merged into the live filesystem either at boot time or manually.
Installing TinyCore to the hard drive can be a borderline “Hurt Me” experience for the new user, particularly if your hardware isn’t recognized out of the box. The install wizard guides you through the basic install, even doing simple automated partitioning; even so, I found there was a certain amount of pre-install preparation and post-install hacking to be done before I had a fully-functioning(ish) system. You’ll also find you need a network connection to install, because the packages necessary for installation are actually not on the disc; if that’s not possible, the experienced user can probably work around this, but the newbie might want to look elsewhere.
On the up side, things are pretty well documented on the TinyCore wiki; and, though it’s technically a “live media” installation, its small size makes it no problem to boot up on even Senior Citizen computers. Be advised, though; because TinyCore’s entire root filesystem is copied into memory on boot (even after installation to the hard drive), it will require at least 48 MB of RAM, so your “prehistoric” systems aren’t likely to take it well.
TinyCore has a growing selection of packages, but it’s still minuscule compared to real mainstream distribution repositories. Interestingly, not all the software is aimed at low-end computing; for instance, KDE4 and VirtualBox are available. For those who find the default busybox, XVesa, or FLWM desktop too limiting, the “full-blown” alternatives are available for download.
TinyCore’s small but active community leans a bit to the techy side, as you might expect. This is a good thing, of course, given that making TinyCore work on some hardware may require some deep wisdom, but if you’re still trying to figure out where the C:\ drive is in Linux, it might not be the place to post your questions.
For simple servers or lightweight desktop installations, TinyCore does pretty well, especially when disk space is precious. For instance, I used TinyCore a few years ago on an old Compaq T30 thin client, whose only storage media was a 256 MB flash drive; I added VLC, ALSA, and a few init script hacks and — voila! — managed to replace a bulky old RAID server whose sole job was playing the hold music for our IP phone system.
Slitaz is another “tiny iso” distribution, coming in at a scant 30 MB. Despite its small size, Slitaz aims to give the user a complete and attractive desktop experience right on the disc, without needing extra software. Default software includes a web browser, games, development tools, image editing software, and a media player. In addition, most common hardware configuration can be done with friendly, graphical dialogs, including a nice hardware driver installation tool for installing proprietary video, modem, or camera drivers.
Like TinyCore, Slitaz uses a stripped-down kernel and busybox for its core system. However, the desktop is based on LXDE, a more attractive-looking environment whose layout will be familiar to users of traditional operating systems.
The installer for Slitaz is simple and straightforward terminal-based wizard. Although it requires you to prepare your disk partitions beforehand, the gparted disk management software is included, making that task about as friendly as it can reasonably be.
The regular Slitaz disc requires 160MB of RAM just to boot up, and even after hard-drive installation I was showing about 128 MB of RAM in use for the base install. “LoRAM” variants are available, reportedly booting and running on systems with as little as 16MB of RAM! (Prehistoric computer owners, take note).
Slitaz’s graphical package manager is simple, but reasonably intuitive and functional with better browsing and searching capabilities than TinyCore’s; it’s backed up by a robust set of command-line tools which should be comfortable to anyone familiar with APT, YUM, or pacman (the package manager, not the game).
The package selection is geared towards light and small software; the heaviest desktop environment you can download is XFCE, and I noticed a number of lightweight packages that are hard to find in other distributions. The selection seems geared more towards the desktop than the server, but most of the notable names in network services are present for those aiming for “lightweight server” (Server-oriented variants of Slitaz also exist).
Slitaz comes in “Stable” and “Cooking” releases; historically a new Stable release has come out about once a year, though as of this writing the current Stable is about 18 months old.
Puppy Linux is an interesting distribution; it’s not really one single distro, but a family of distros all built using the “Woof” build system. Woof can use packages from any other distribution to build a Puppy release, so there are many different releases based on different package sets or with different customizations. It’s a little confusing muddling through all the different versions, honestly; not only are there remixes and alternate versions, but older release series are still maintained and updated. I settled on the latest release of “Puppy Wary“, which was billed as being geared towards older hardware and seemed a natural fit for this project.
The Wary iso is 120 MB, considerably larger than TinyCore or Slitaz, but still small compared to mainstream distros. Booting it immediately ate 256MB of RAM, but after doing a full hard drive install it settled down to a more reasonable 64MB.
If TinyCore presents itself as a Zen garden, and Slitaz as chef’s kitchen; then Puppy presents itself as a mechanic’s garage. It has the feel of a distro built by people who’ve installed Linux on a lot of old computers, and know what kinds of trouble you’re likely to run into. The interface errs on the side of ugly, and is incredibly verbose: nearly every wizard or utility I launched presented me with a wall of text explaining what I was about to do, what my options were, what potential things could go wrong, etc. For this reason — if you don’t mind doing some reading, — you might find Puppy a great choice for digging in and learning the ins and outs of Linux on old hardware.
The default application set includes Seamonkey for browsing and email; Abiword, Gnumeric, and Inkscape for productivity; mplayer and Ogle for multimedia; and a raft of small, custom-built wizards and dialogs for all kinds of common tasks. Its default desktop environment is built from JWM and ROX-filer in a traditional Windows-esque configuration. The package manager is pretty much in the same vein as Slitaz’s or TinyCore’s, though the selection of packages seems almost exclusively desktop-oriented, so those aiming for a server should look elsewhere.
I feel obliged to note that Puppy is set up to autologin to the root account, even after hard disk installation, pretty much obliterating the concept of authentication and limited-user-account security. What’s more, there are no tools installed to change this behavior, and hacking around it reportedly breaks a lot of things. That pretty much rules out using Puppy as a server or on a computer for multiple users (or, for me, just about any situation where I care what happens to the computer). There is a lengthy defense of this behavior on the Puppy wiki, which you can read and make up your own mind about; I’ll just leave it at caveat emptor.
As you might guess from the description, Puppy has an active hacker community and a number of spinoff versions and customizations known as “Puplets”. Many of these versions are geared towards older hardware, so the Puppy community has a lot to offer for those interested in keeping dusty gear running or experimenting with Linux. The Puppy community also has a lot of great resources for beginners, like video tutorials and free e-books about Puppy, and its forum community seems active and inviting.
Damn Small Linux
Damn Small Linux, or DSL in polite company, is the original “full system on a tiny iso” distribution. It’s size is capped out at 50 Mb, yet it provides a reasonably complete (if slightly ugly) Linux desktop.
Sadly, DSL development fizzled a few years back, handing the torch to TinyCore and Slitaz. It’s nevertheless worth mentioning because it’s probably the only distribution you’re going to fit comfortably on a computer with less than 32 Mb of RAM. It’s minimum memory requirement for a desktop install is 16 Mb, something only the LoRAM variants of Slitaz can approach.
Its small footprint is partly owed to its use of the Linux 2.4 kernel rather than the 2.6 kernel which most distributions moved to around 2005 or so. This means its functionality may be a bit wonky with some peripherals, but the speed difference is quite notable. DSL has a simple package manager, and there are a variety of (obviously outdated) software packages available for it. Both desktop and server packages are available, so if you are looking to turn something ancient into a GUI-less server (which DSL will do on as little as 8 Mb of RAM), DSL may very well answer.
Without being too presumptious, I’m going to have to say DSL is probably not the distro you want to run on your computer, but I decided to mention it briefly because, in some cases, it may be the only one that actually does.
Just the beginning?
There are a few more lightweight distros out there in the wild, but these four are the ones I’ve personally had success with, and are a good start for someone looking to get into lightweight Linux. If you’ve had good experiences with another lightweight distro, I’d love to hear about it.
In the next installment, we’ll talk a bit about Remix distros and some other medium-weight distros suitable for newer machines. Until then, happy tinkering!