The Ultimate (but Small) Linux Box!

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.

______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Hey everybody check out the tiniest single file X servers as small as around 1 MB!

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Hey everybody check out the tiniest single file X servers as small as around 1 MB! at www.rule-project.org/en/sw/kdrive

Another good article on this subject

Anonymous's picture

Boom!

Anonymous's picture

Hi I am trying to take a tiny bite of redhat 8 distro and make a mutant called MMLinux aimed at mp3 and video freaks evrything is fine except that i get an 'no job control in this shell' or somethng like that please help me with this. once i get this problem done, i can open ,more than 1 ttys and can keep a mixer open. I am trying to make it as simple and user freindly as possible. It has come to around 18 MB I am using Kdrive for Xserver instead of the usual X server. You can find about it in RULE (Run Updaed Linux Everywhere) 's web site. Mplayer for the mp3 playing ,vedio, ogg vorbis etc., etc., cdp for playing audio cds. My root file system is a heavily modified initrd of the RH8 package
Laxminarayan kamath
kamathln@rediffmail.com
p.s. i wll register, but not now . I am tired of typing this on a mobile fone.

Minimal Resource Linux Distribution : Tiny Linux

Anonymous's picture

Tiny Linux:

http://tiny.seul.org/en/

This distro is tailored for systems with few resources

Minimal Hardware Requirements:

------------------------------

* processor : i386 or better

* hard disk : 50 Megs, 80 Megs is best

* ram: 8 MB minimum, 12 MB or 16 MB is better

* floppy drive :3"1/4

It supports X windows ( GUI environment ) and networking.

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Thanks for the excellent article.

Here is an interesting faq on WordPerfect 8.0. Runs in 6MB (AbiWord also, KWord about 17MB).

http://www.linuxmafia.com/wpfaq/introduction.html

Suggestion for another article (or probably there already are?): Expand on the last paragraph in the article to explain in more detail what services (from the default install) are really required, and which can be turned off, for example sendmail, Apache server. Specifically I use Netscape mail, do I also need sendmail running? Or does netscape bypass that?

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

You basically described Vectorlinux to a "t". I use it for the same reasons you stated, on my laptop.

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

johnno's picture

I did a similar story a while back, it's at:

http://users.netwit.net.au/~pursang/lofat.html

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

LoFat, desktop background-holic

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

www.edmunds-enterprised.com sells Mandrake for 486. Anyone like this small 'puters?

Qtopia and QtEmbedded

Anonymous's picture

Try using Qtopia (with the Linux framebuffer) and the QtEmbedded apps. I have alot of software installed on my Zaurus that will run really well on older x86 hardware.

Anyone interested in creating a distribution (I had originally thought this would be a great way to give away Internet connected waste PCs - one's that business thought were unusable - to needy kids and organizatoins)? Post back!

Re: Qtopia and QtEmbedded

Anonymous's picture

I've just gotten into working with older computers, and I had the same idea of creating a distribution created solely for older 486s and Pentiums. Now this article has given me some inspiration to create one........

My ol' computer:

Pentium MMX 200mhz

32MB SDRAM

3.2 gig hard drive

Matrox Millenium 4MB video card

Coincidentally, I was flipping through some old wireds yesterday, and there was an article on what happens to older computers; Linux would be perfect for them because of Microsofts stupid licensing that requires the media to stay with the computer.

Re: Qtopia and QtEmbedded

Anonymous's picture

All we need now is a way to run NetZero for a free ISP and the those with minimal resources (in the U.S.) can have net access.

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

"Small" systems are really good to work with and to learn about good sysadmin and system building practices. A few years ago I obtained a Compaq LTE5100 60-some Mhz, ~32M RAM, 700M HD, and external cdrom. I ran debian with fvwm for a while, but it just got to the point that debian was slower than molasis in january so #puts on asbestos longjohns# i switched to NetBSD. NetBSD with fvwm2, numerous xterms, and an X-session to my NIS/NFS/Firewall/Fileserver/everythingelse box on another virtual console causes little or no performance issues on the little fella. i can go on happily working (I use it for managing my little pile of machines) with almost no grinding or pauses (minus those that would be expected from a machine of this type). All in all making small systems work for you should be a required experiment for nearly all *nixers

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Where do you get NetBSD? At one time I wanted to try

it, but I couldn't find anyone selling CDs. I see now that

CheapBytes, etc, selling NetBSD... I like OpenBSD and

also dabble in FreeBSD, does NetBSD offer anything

over OpenBSD?

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Being the Potatoe cooker, let me say that you don't need the asbestos johnnies on. What footprint did you get NetBSD into? Or is 400mb resonable? I have never tried any BSD but am more than willing...

Thanks

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Sorry, but are you implying that Debian is a lighter OS? Know your facts fool!

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Slackware roolz!! A base install of Redhat 7.3 (no X, no networking, no dev tools, no nothin) weighed in at 149 MB on disk. Slackware 8.1 came to the rescue at 47 MB. Then I added tcpip, ppp, X, and Fvwm95 (no IceWM on the iso) for around 115-120 MB, still below the RedHat base install. Installing slack is still not as shiny as some of the others, but for getting the job done on a diet (budget) nothing else comes close.

Oh yeah, for partition juggling, GNU parted roolz too.

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Oh yeah? :-)

Gentoo base install is around 16 MB.

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Interesting patches to dillo (dillo compiles under FreeBSD even with the patches applied):

http://bobuk.ipost.ru/packages/dillo

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Ah yes, this is on my menu, and is a dish that I like alot. I have a 486 with 400mb hd, and 32mb ram. Dselect is my main tool, and I can easily get Pototes simmering quite nicely!

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

To give a better idea, I spent some of my spare time this year optimizing a P233 laptop with 32 Mo of RAM, and 4 Go of harddrive.

Window manager:

I started by using blackbox, but this is just not the kind of interface I am fond of, so I switched to Icewm-light.

File manager:

Have a look at Rox-filer, a great app!

Email client:

Sylpheed, a complete and fast email-client

Browser:

Opera, though it is not GPL, less ressource-hungry as any recent browser.

I happened to use Dillo as well for simple web-sites. It's deadly fast, but quite rudimentary still.

Office:

Abiword, Gnumeric and Lyx. Forget about Openoffice with 32 Mo of RAM.

As you can see, most fast-running programs (if not all) where based on GTK+. And they are still quite user-friendly.

Hope it helps some people.

Yann

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

ROX-Filer is the best file manger I've ever seen.

http://rox.sourceforge.net

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Just try Endeavour Mark II and you'll see a difference.

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

IceWM 1.2 was released a few weeks ago.

I have tried it: it's faster than 1.0.9 version!

(I don't know about its footprint but it should be the same)

also look at Ted, a great little word processor

antskip's picture

In the "small is beautiful" fashion of Dillo, Sylpheed, and Windowmaker, Ted is a fine word processor that takes up half the footprint of abiword, reads and writes rtf files better than any, and even caters for footnotes.
Info and downloads at http://www.nllgg.nl/Ted/.

Links 2.1pre2

Anonymous's picture

Links 2.1pre2 aka gLinks is also a nice light browser with good rendering in graphics mode as well as js, cookies, frames, and SSL support.

Dillo and Links2 are both great feather weight browsers.

Re: Links 2.1pre2

Anonymous's picture

O heck. Just use lynx.

Re: Links 2.1pre2

Anonymous's picture

Does lynx have a GUI now? I just saw that links2 does - and I'm using it right now. It's pretty good. BTW, I'm running it in cygwin, since I can't install Linux on my PC at work :-)

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Don't forget openoffice.org!

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

>Don't forget openoffice.org!

That has to be a joke. Great program, but it is about as light as lead.

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

brianlane's picture

Great article Marcel! But I think that your memory use estimates are a little on the low side. Maybe you are only counting the direct KDE and GNOME programs. I've found that if I install a basic RH 7.3 GNOME system and then try to do 'normal' things like compile programs, use a browser and email client (sylpheed) that it pretty quickly ends up hitting swap on my 256MB machine.

My solution has been to do a RH 7.3 install and then use the individual package selection system to remove everything (even when you don't select some features they are included!). I end up with about 350MB footprint on the disk, but still need X, etc.

I then install WindowMaker and go from there. Its a bit of a hassle getting around all the dependencies on GNOME and its associated plethora of libraries but it can be done with a little bit of recompiling (or in the case of gimp, installing with --nodeps).

The major Linux distributions are turning into BloatWare, its time to take back control of our machines!

Brian

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

FreeThinkerAtLarge's picture

Hi Brian,

Thanks for the comments. As for the numbers being on the low side, you may well be right but I wanted to let you know that I actually went out of my way to provide untainted numbers on this, despite the fact that I acknowledge this is far from scientific.

For each test, I reset my .xinitrc file so that I would start up X with a specific window manager and an Xterm -- nothing else. To make sure that buffered and cached memory wasn't a factor, I rebooted each time, checked the numbers with 'free' on startup, then checked it again as soon as my graphical environment was up.

It is also possible to tweak these numbers down even more by stripping binaries or compiling with in wild and exciting ways, but this is not what I wanted to provide for a 'simple' alternative to the mega-desktops.

Anyhow, enough from me. I'm glad you enjoyed the article and I appreciate the feedback.

Marcel (Writer and Free Thinker at Large) Gagn

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

Doesn't it occur to you that you are using the wrong distribution?

(Now, I'm not knocking Redhat. I don't use it myself but I don't believe that Redhat is the "Microsoft of Linux" or whatever.)

Instead I use Debian. I install the base system (some 20-30mb I haven't done it for a while so I don't remember exactly), and then just install the bits I need. The reverse of your install technique, and a very sensible way to go about it. I don't need to worry about broken dependencies, and if I see something I don't want to be installed (ie bits of Gnome or KDE or whatever) then I just look for an alternative App. If I find I can't live without something (ie Quanta for the sake of argument) I can install it knowing only the very neccessary bits of KDE are installed. Also, most apps which can either use Gnome or not (ie Abiword) exist as seperate packages. You can install either Abiword-Gnome or (or for that matter, and) Abiword-Gtk. No recompiling is neccessary.

The end result is as minimal as a mainstream distro can be. In my wife's PC's case, a total of about 300mb, including X, browsers (Opera, Netscape 4 and Mozilla, although that doesn't work so well on this P100, window manager (XFce), mail program (Sylpheed), word processor (Abiword) and too many other bits to remember. On my main machine (which is a powerful Celeron 300, a luxurios 192mb of RAM, and a spacious 6gb harddisk) I have less than 1gb installed in /usr, but with almost everything I could ever need.

If you think that the major distros are turning into BloatWare, I suggest you look around a little further!

Cheers,

Richard

Ps. To get back on topic, have a look at Rox File Manager if you want a lightening fast, but low resource, graphical file manager. This thing is excellent, and has to be seen in operation to be believed!

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

very good article

i would help by pointing blackbox or is parent, fluxbox as a even ligher WM (fluxbox with a total of 2.3Mb of ram right now on my system)

this article lacks a very important program, a email client...

there are several console mail clients, mutt and pine are the best, for graphic ones, sylpheed and its dev version, sylpheed claws are the best, very fast and light, but still very powerfull and stable

for year i search for a good GUI email client but all were slow, buggy or dead

after i found sylpheed i stop looking, it was and still is perfect

instead of xterm i recomend the rxvt, its stilla a xterm, but a little lighter than xterm, and if you are like me, with several terminals opens you will start to see the diference

gnumeric is faster and lighter than openoffice, not as light as abiword but still a app to test

that it, now go test the software

higuita

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

I think you might have the blackbox/fluxbox relationship backwards. Your point is spot-on, however.

Mike

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

blackbox came first!

Re: Cooking with Linux: The Ultimate (but Small) Linux Box!

Anonymous's picture

icewm uses 1.8Mb for me... all depends on configure/compile options...

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState