(This is an article written in March 2003,republished here because as far as we know it isn’t available online on the Linux Magazine website. Should they do it, I’d immediately replace this page with a link to theirs)
A lot of Free SW is just as bloated as its commercial counterparts, and the modern HW it requires cannot be “free as in beer”: from this point of view, Linux becomes indistinguishable from Windows for developing countries, non profit organizations, and businesses wishing to cut HW expenses. The RULE project gives a new answer to this problem.
Linux is an established server platform, and is finally making giant steps also in the desktop arena. Unfortunately, careless programming and packaging have also started to make the hardware look obsolete just as fast as only proprietary SW used to do. Every new release may need more resources just to do the same things of the previous one, and the first, if not only answer we get is “buy more RAM”. This is bad, because many people don’t even have those few dollars to buy it, assuming that one *does* find RAM which will fit in older PCs.
Until now, even with source code availability and lack of license fees, there was no really satisfying solution to this problem.
Building everything by yourself, like “Linux from scratch”, is possible, but unfeasible for most of us. Using specialized distributions means giving up on mainstream support and user communities. Besides, the problem is not in the distributions (not all of it, at least) but often before, in the applications. Sticking to older distributions is ignoring the problem, or accepting failure. Apart from using insecure systems, we could not digitally sign email, print nicely, use IMAP or JavaScript, and so on.
Using obsolete PCs as thin client of a powerful server moves the problem somewhere else, when at all possible: “if you can’t afford a newer computer, buy a newer computer and some cables, and you will be fine”. This is doable (spending money) in places like schools and small businesses, which, also to simplify system administration, must have a LAN and centrally installed applications anyway. Stand alone users however, as well as networks made only of recycled computers, are left alone.
A new kind of solution: the RULE Project
In February 2002, some Red Hat users teamed up to solve these issues, starting the RULE project (the acronym stands for “Run Up to date Linux Everywhere”). RULE approaches the problem of running the latest Free Software on obsolete computers in a new way, which avoids neatly all the limits of the solutions listed above, with the lowest possible effort.
RULE is not yet another Linux distribution: RULE helps to install, and builds upon, the latest stable version of Red Hat Linux, nothing else. More specifically (and this is the novelty) a PC set up and configured with the RULE tools will look just as if:
- you had extracted its hard disk (if there are less than 32 MB of RAM)
- you had given it to a Red Hat expert, together with the official Red Hat CDs
- the Red Hat expert, using only those CDs, had found out and installed only the smallest possible combination of standard packages which gives all and only the functions that you actually need (see Figure 1 below, which shows a typical RULE desktop: GUI programs are also supported, but even very limited desktops are given icon based file management, multilingual email and text, browsing with inline images, and much more!)
- he had configured all those programs to work together from the first boot.
If you are wondering “Why Red Hat, of all choices?”, the answer is really simple: in addition to some reasons which will be clear in the next paragraph, the people who had the idea were all already using Red Hat, and many of them don’t have spare HW (or time) to work on other distributions: just that. This doesn’t forbid a “port” of the RULE tools and approach to other varieties of Linux (or to non x86 processors!), as long as somebody volunteers to do it.
The advantages of this strategy should be evident by now. With a very little effort, as far as development and maintenance are concerned, RULE can give to everybody with very limited hardware, and no possibility to make a thin client of it, a mainstream distribution, which has regular updates, professional developers, a large user community, plenty of binary packages and documentation in many languages.
Patches, upgrades, security fixes, and so on are all handled by Red Hat: RULE must maintain only its own tools, and the RPM packages of some programs not still existing, or not built anymore, for the current distribution.
The RULE tools and packages
This all sounds great, but how does RULE make it happen? In general, RULE will reduce disk and RAM needs discarding old programs in favor of newer, but efficient ones, not the other way around. A practical example of this is the selection of xft2 applications, explained in detail in the kdrive section, and the dismissal of those still using xfs. At the same time, since small apps can be just as powerful as the most bloated ones, but only if configured and integrated in the right way, RULE will not simply select mutt because it is feature full and fast (all distributionss already do it) but also put in any user directory a config file hand-crafted by the gurus.
The RULE installers
Speaking of specific tools, the first problem to solve was the 32 MB installation barrier. Maybe the funniest thing in Red Hat (at least when the project started) was that one needed more RAM to install it than to actually run the base system: the Red Hat installer, Anaconda, was in many cases the only real bottleneck. Michael Fratoni solved this problem for RULE first with Miniconda, obviously an hacked version of the official tool, and then with Slinky, a completely new product derived from busybox.
The second installer is the one more actively maintained now: the current version works with Red Hat 7.x and 8.0 CDs, can install from the network and it is not more difficult to use than the official text mode installer.
While we write (march 2003) both programs install quite less packages than their official counterpart, and are quite stable and reliable, even if, especially with slinky, we need more testers to debug some corner cases, and to make it assist better the users not already expert in Linux installation. Apart from this, the installers need improvement primarily in the documentation and internationalization areas.
DAn, the Distribution Analyzer
Another new and cool thing in RULE (which can be ported to other distributions) is DAn, the Distribution Analyzer. We all know that, when building our very own Linux box, finding the most efficient programs which do just what we need, and satisfying all the dependencies can be very frustrating and time consuming, especially for newbies. From the RULE point of view, the tools commonly suggested to solve these problems (apt, urpmi, and so on) give only false solutions. Sometimes we’d need to know in advance the name of the programs doing what we want. In all cases, we should have already installed the distribution (including a lot of unneeded stuff) to use those tools. Last but not least, how can we find the best solution, ie the combination of interleaved packages providing the required services at the smallest prices (as far as RAM and disk space are concerned)?
The RULE Distribution Analyzer (a.k.a. DAn) is intended to solve just these problems. RULE will use it internally to find out the best packaging options, but it is a program that every user will be able to run online, as a CGI script, or locally, on any *nix box, to get answers to questions like:
- Show me which programs I’d have if I installed Red Hat X.Y
- How much disk space would I need if I installed these standard Red Hat package groups?
- I don’t really care for KDE, GNOME, and what not. Just show me the smallest set of RPM packages which will give me this set of features.
The “set of features” above will mean what end users really understand and care about: things like “IMAP email” “JavaScript support” “statistical spreadsheet” and so on. The result will be lists of RPM packages from both the official Red Hat CDs, and third party resources like FreshRPMs.net, or the RULE website itself. The flow diagram in this picture explains how DAn works.
Kdrive
Another RULE activity with great potential is the packaging of kdrive. This program is a lean and mean replacement for XFree86, possibly the single biggest enemy of any lightweight desktop. It can’t do several things, including antialiasing, and Asian fonts, but this is not a problem for RULE. The project makes its mission to use modern Free Software, and Red Hat 8.0 has started to make massive use of xft2 enabled applications (read that as “X clients which do their font rendering by themselves”).
Coupling such programs with a lightweight graphic server means that the computer has a much smaller load when there are just some xterms open, but, when it’s time to do homework, the system could display antialiased equations without swapping itself to death.
The exceptions: Which packages are new and why?
As already mentioned, RULE will package some programs, mainly those little known utilities that give maximum functionality with the smallest performance hit, and don’t exist yet in RPM format: a directory of such utilities, including those packaged by others, is available on the website.
RULE will also provide utilities that help the user to keep his or her system lean and mean. For example, look on the website for the “Vacuum” script, which finds and removes many useless files in a controlled way (if we installed in English or German, why should we keep docs, keyboard layouts, fonts, etc… for all other languages? This happens today, and eats disk space).
RULE side effects
It is the hope of its developers that RULE will benefit all the Free SW community, not just its direct users. A first example of this is slinkydetect (see resources section), a bootable floppy which detects all the HW present inside a PC, and writes it on the floppy itself with a unique file name.
In general, however, much of the bloat is not in the distro but in how some programs are compiled or packaged. Using such programs in a typical RULE environment, ie with very tight resource constraint, will very likely highlight packaging bugs and wrong dependencies. Once these issues are signaled to the developers, everybody will benefit of the corrections. This has already happened: while experimenting with kdrive the XFree86 binaries shipped inside the official Red Hat packages were found to be not stripped, i.e. bigger than needed.
Who should use RULE?
The discussion above may have given the false impression that RULE is only interesting for very limited desktops. As a matter of fact, setting up any server, or even a Pentium-4 desktop with RULE can be an excellent way to have a clean, safer, and easier to maintain system. Remember that RULE installs official Red Hat packages, and that only unneeded ones are left out.
Besides these purely technical considerations, making the best possible use of the available hardware until it physically falls apart or the user’s need change drastically (“I want to mix video!”) is always a Good Thing. Computers are very toxic waste, and, as cheap as they seem to us, 80% of the world population should still work many months to buy a new one. The same is true also for many western world NGOs, hospitals and schools.
In developing countries, having audio recording, and multilanguage support, on the computers usually donated to their rural communities, may mean that they can save all their folklore before they learn to download the next J Lo single as everybody else and forget who they were.
Conclusion
RULE needs basically three things (besides more developers, of course!): testers, translators and requirements from end users. To know more, please subscribe to the mailing list, or contact us.