The Ultimate (but Small) Linux Box!

Marcel Gagné

Issue #101, September 2002

You don't always need the biggest, baddest machine to get the job done well—slim down the numbers.

Great meals are made in great kitchens, François, but what makes a kitchen great is simple. A great kitchen is a marriage of talent and environment, the chef and his or her tools. To do wonderful things, one doesn't need the world's largest kitchen any more than one needs the biggest and fastest computer when cooking with Linux. Observe, mon ami, this window manager, IceWM. While it is a small package, it is still quite attractive, flexible and easy to work with.

François, you are not paying attention. Quoi? Ah, welcome, mes amis, to Chez Marcel, home of fine Linux cooking. Please, let me show you to your seats while François fetches the wine. Vite, François. Slip down into the north wing of the wine cellar and bring back that 1999 Napa Valley Cabernet Sauvignon we were, uhm, submitting to quality control earlier today.

While we wait for the wine to arrive, let me tantalize you with some hints from today's menu. It is easy to get carried away with the idea of a super fast processor (or several), vast amounts of disk space and virtually endless memory. Unfortunately, that is not the machine we are all blessed with. In fact, those who might remember the days of being a poor student certainly will appreciate that, sometimes, we take what we can get. How, then, does someone with only modest hardware take advantage of the power of Linux?

For starters, we could run a very small system by going to some Linux distributions on a single floppy and ignoring the graphical environment entirely, but I would like to avoid doing that. The idea is to create an attractive desktop with some friendly graphical tools while living within the constraints of limited resources.

Here are some interesting numbers: on my new Red Hat 7.3 workstation, running the KDE 3.0 desktop with a single xterm, the free command shows roughly 34,000KB (not counting buffers and cache) of memory in use. This is after I subtract the base system requirements and without running a login manager, such as KDM. Granted, a lot of KDE's funky new features are running, such as fading tool tips, pop-up icons, sound themes and so on, but that is the default install. GNOME 1.4, again with a single xterm, comes in closer to 27,000KB. Those KDE and GNOME numbers present a sharp contrast to what I get when I run this IceWM—a mere 7,500KB.

As you can see, you can make a huge difference right from the start even when continuing to run a graphical environment. IceWM, written by Marco Macek and enhanced by Mathias Hasselmann, is a small, lightweight window manager that is nonetheless feature-rich. It supports multiple desktops or workspaces, can be used without a mouse, supports (and comes with several) themes and does a nice job of mimicking the style of that other OS.

The latest incarnation of IceWM can be found at www.icewm.org. The site provides precompiled RPMs, but building this little window manager is easy and follows the classic extract and build five-step method:

tar -xzvf icewm-1.0.9-2.tar.gz
cd icewm-1.0.9-2
./configure
make
su -c make install

You no doubt will want to customize IceWM to your own environment and add those little touches that make you feel at home. The best way to do that is to create a local .icewm directory (in your home directory), then copy the system-wide configuration files there. The default installation puts them in /usr/X11R6/lib/X11/icewm.

mkdir $HOME/.icewm
cp -r /usr/X11R6/lib/X11/icewm/* $HOME/.icewm
Et voilà! You are ready to run your new window manager. The easiest way to get started is to create an .xinitrc file in your home directory. All you really need in that file is a single line that reads:
exec icewm
Now, type startx, and you are skating on the Ice window manager (a little joke, mes amis). Click the application launcher button in the lower left-hand corner, start a few programs, and you should have something that looks like Figure 1.

Figure 1. IceWM, a Very Cool Window Manager

After doing some rather casual mathematics, my running instance of IceWM (with nothing but an xterm) comes in at around 7,500KB. Not bad, but where else can we do a little trimming? How about the graphical web browser? It seems lately that web browsers keep getting bigger and bigger. Granted this is because of their increasing richness of features, but on less than super fast hardware, we might be willing to give up a feature or two. Even Opera, an excellent browser that has gotten a lot of press lately (in part thanks to its speed and small footprint), still might be a bit hefty.

Consider Jorge Arellano Cid's Dillo browser as an alternative to the larger, flashier, do-it-all browsers of the day. You'll not only find that its demands on your system are few, but its speedy rendering of pages is also nice. Have a look at Figure 2 for a rather snappy shot of Dillo in action.

Figure 2. Dillo, a Small and Fast Graphical Web Browser

To get started with Dillo, visit dillo.cipsga.org.br and pick up the latest source. Extracting and building it involves a familiar set of steps:

tar -xzvf dillo-0.6.6.tar.gz
cd dillo-0.6.6
./configure
make
su -c make install

Once the program is built and installed, you start it by typing dillo &. After starting Dillo, I checked my resources yet again and found that the whole running process took only 848KB of RAM, a rather impressive little number.

Arguably, the word processor is the single most important desktop application in the office. What could we possibly do in terms of a full-featured, powerful word processor that handles the ubiquitous MS Word format documents? Keeping something like this small is a tall order, I agree, but how does the 1,700KB of AbiWord sound? Compare that with the nearly 12,000KB my system reports upon firing up OpenOffice Writer. If all you need is a word processor, and your resources are limited, visit www.abisource.com, where you can get yourself a free copy of this great word processor.

A number of prebuilt binaries are available on the site, so you probably don't have to do much work. For those who prefer building from source, you'll have a couple of additional steps, but it is all very simple:

tar -xzvf abiword-1.0.2.tar.gz
cd abiword-1.0.2/abi
./autogen.sh
./configure
make
su -c make install

When you have finished installing AbiWord, you can start it by typing the command abiword &. A word of warning: a common complaint when starting up AbiWord has to do with fonts. By default, AbiWord's fonts aren't included in your X font server's list of available fonts. Consequently, AbiWord will complain on starting up. The program should still run, but you won't have access to the included fonts. To rectify this complaint, you can simply add your fonts to your X font server's font path. On a Red Hat or similar system, the easiest approach is to use the chkfontpath command:

chkfontpath -a /usr/local/share/AbiSuite/fonts
service xfs restart
The path above assumes that you installed AbiWord from source. On other systems, you may have to edit the /etc/X11/fs/config file and manually add the font path. Look for the paragraph that begins with catalogue =:
catalogue = \
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
Notice that each line has a comma at the end of it except for the last. If you are manually adding the font path to the end of this list, make sure you add a comma to the now second-to-last line and remove the comma from the last. Once again, restart the xfs service and then restart your window manager session.

Figure 3. Working with AbiWord

So, we have a tiny but slick window manager, a tiny but slick web browser and a modest but powerful word processor. What about an entire office suite? Once again, I can see from the look in your eyes that you think Chef Marcel has been sampling a little too much of his own wine.

Have a look at Siag Office, whose name stands for “Scheme in a grid”. Not a very intuitive name for an office suite, I grant you, but Siag is an office suite you owe to yourself to have a look at. It is a tightly integrated suite comprised of a word processor (which the author calls Pathetic Writer), a spreadsheet (Scheme in a grid), an animation program (Egon) and more. Right up front, I will tell you that MS Word format is not directly supported. For some, this may be a showstopper, but for others it is less of a problem. Because RTF format can be used to exchange documents, this may be all you need to move documents back and forth.

You'll need to get and compile the XawM libraries (an Athena-compatible library), the Mowitz libraries (more widgets) and finally, Siag Office itself. Trust me, it's easier than it sounds; all of these packages are available on the main site. Each package can be compiled with the classic extract-build five-step method. For instance, with the XawM libraries, you would do this:

tar -xzvf XawM-1.5u.tar.gz
cd XawM-1.5u
./configure
make
su -c make install

Once you have made and installed all three packages, you should be able to start the word processor by typing the command pw and the spreadsheet with siag.

Figure 4. All This for So Little

We've done this little number comparison a few times now, so let's have a look at how much Pathetic Writer demands of my system. Drumroll please. With Pathetic Writer going and a column-length article loaded, I am using a mere 1,300KB.

In fact, with IceWM, AbiWord, Pathetic Writer, the Siag spreadsheet, the Dillo web browser running and an xterm, my memory usage is still under 32MB! Have a look at Figure 4 for a screenshot of my lightweight but busy session.

But, of course, when working with limited resources, applications are only part of the picture. A default installation of any major distribution likely will have a number of unneeded services running. You must ask yourself whether you need to be running things like sendmail, NFS, the Apache server and so on when your PC is being used as a workstation. Run a ps axfw and decide whether you need all those services.

As you can see, you don't need to have the biggest, fastest and most up-to-date computer to experience the ultimate Linux system. What you need is the willingness to look beyond the most popular packages of the day and ask yourself whether you really need all those features. Sometimes smaller is better. When it comes to wine, however, a nice generous glass doesn't hurt. That large glass can, however, affect your performance (consequently taxis will be waiting outside the restaurant). Drink up. Enjoy. Until next month. A votre santé! Bon appétit!

Resources

Marcel Gagné lives in Mississauga, Ontario. He is the author of Linux System Administration: A User's Guide (ISBN 0-201-71934-7), published by Addison-Wesley (and is currently at work on his next book). He can be reached via e-mail at mggagne@salmar.com.