Use "Debian proper" that is: standard Debian. Examine and gather all good packages that use minimum memory. Configure all programs for use with minimal window manager. The result is coherent desktop which is suitable for low end hardware, limited Internet connectivity and bandwidth (dial up).
Like a tree, Stem (Bot.) – the little branch which connects the leaves with a main branch – has the capability to grow in time for individual needs with the help of standard Debian packaging system.
Stem Desktop is a meta-package which is meant to give Debian a turnkey start for low end machines whose CPU is old (around 166 Mhz) and where memory is limited (64 M). The philosophy behind Stem Desktop is to provide a minimal system similar to other mini Linux distributions of which the most well known Debian derivate is Damn Small Linux (DSL).
The difference is that Stem Desktop uses standard Debian (or "Debian proper") and is thus 100% compatible with it. The is constructed by installing standard compliant *.deb packages which handle glueing all together. The finished desktop includes web browser, office suite, instant messaging programs, connectivity for dial-up, file manager, email programs, email notifier, remote administration (inbound; daemon services like VNC, SSH), file distribution (outbound; HTTP server; Mail Transport Agent - a satellite server to forward mail to ISP) intruder blocking (firewall), programs to take window and full screen shots as images and more. All this integrated in light weight window manager where all the menus are nicely configured.
The selected programs represent utilities available in Debian that use minimum memory and use small libraries (mostly GTK graphic library based). Due to constraints of real world, some programs are a "must have" regardless of their memory usage. E.g. there would be other browsers (like dillo) or alternatives to Open Office (like gnumeric), but not seriously anyone would use anything less than a good web browser and Open Office for real work.
Stem Desktop is not KDE nor GNOME and does not try to impress with nice looking icons or themed desktop. Stem Desktop is a workhorse designed to refurbish old hardware to provide low resource and speedy graphical desktop. There are no custom configuration programs developed (all is standard Debian) and no operating system level things are pre-configured, because stem Desktop's goal is not to be Knoppix or other custom Linux distribution. All that is done is to take the next step after standard Debian netinstaller. Sound card, CD/RW, DVD and multimedia and other configuration issues are handled like they're handled in Debian – by the administrator. The #debian IRC channel at irc.debian.org and the accompanying Debian newsgroups offer resources for any problem at hand.
If you have old hardware and want "Debian proper" with limitless upgradeability and easy maintenance, Stem Desktop may get you started to build your very own Debian system.
If you have new hardware and need more polished and more automatically configured system, there are many other Debian derived distributions that may be serve the need better: Ubuntu, Kubuntu, Kanotix, Mepis to name a few which include everything from auto-configuration to heavy KDE and GNOME desktops.
Stem was developed for old trashed away laptops whose needs were moderate: mail and web browsing. The systems had to be easily remotely administrated. In addition on-line help to the end user was a nice-to-have feature which was provided with the help of VNC.
In search of good light weight Linux distribution, there were many promising distributions like DSL (Mostly Debian), Feather (light Slackware), Puppy (bare bones light slackware), Austrumi (light Slackware) and Vector (mid weight Slackware). The author used them all for some time and tried to decide which one would be be most suitable for low end PCs.
It all come down to one thing: the long term ease of maintenance was considered the most important thing. Therefore distribution needed to be Debian based and only DSL fit in the criteria. Damn Small Linux is amazing project which squeezes wealth of programs in tight disk space. The uncomfortable thing with DSL was that it was not pure 100 % Debian compatible at the time of evaluation (in early 2005). DSL is a Knoppix derivate and uses its own .dsl packages and downloading packages from standard Debian repositories could break the system. Many things are configured the "Knoppix" way and not the "Debian" way. At start DSL used dillo for Internet browsing, which soon proved to be inadequate for day to day Internet reading. The shortcoming was soon corrected by switching to Firefox. The first window manager in DSL was Fluxbox, which was suitable for skilled Linux users, but not necessarily ideal for people coming from Microsoft background who are accustomed to certain look and feel. DSL moved (late 2005) into very light weight jwm window manager which resembled Windows look and feel enough.
Stem Desktop project started early 2005 from an idea: "would it be possible to use standard Debian to provide all the same features as found from other light weight Linux distributions? It was also important that the menu system would give the look and feel of Windows for easy migration from a proprietary operating system. From this challenge, the project sprang.
The Xdm's graphical login screen image was borrowed from standard Debian package which included lot of picture files (package's name has been forgotten). The desktop's default background image was borrowed initially from a remarkable Latvian light weight Linux distribution called Austrumi.
4.0 DEVELOPMENT GUIDELINES
Make minimum changes to the standard Debian. All changes must be possible to undone. All must remain 100 % compatible with Debian. In short, only do "configuration tweaks".
It is assumed that end user has no permanent Internet connection (dial up assumed) and no need to run permanent servers. The server needs are occasional like remote administration through VNC or SSH. All services are run from inetd if possible to conserve memory.
The programs are selected primarily based on memory consumption results reported by the top(1). The ones that use least memory are preferred.
Use GTK 1.x based graphical programs if possible. Avoid programs requiring KDE, Gnome, Qt libraries or Tcl.
Multimedia or printing tools are not essential. The only exception is sound player.
Window manager's menu structure should be close to that of Microsoft's to ease migration to Linux (the path of least resistance). Menus should use generic names instead of application names. The mapping of menu item to a running program is controlled by separate file. This allows user to customize his set of selected programs.
Select only one program for any given task. Many programs to do the same is for more experienced users. The less programs, the less updates take time and band width (constraint: dial up) and require less maintenance.
Be conservative what programs are included by default - Keep it simple. Let user add afterwards what he sees fit.
WARNING: Stem Desktop is designed to be installed to clean Debian system. Installing on top of already personalized Debian system may cause unpredictable results. System files under /etc are modified during preparation of Stem Desktop.
Install clean Debian by using stable Netinstaller CD available at <http://www.nl.debian.org/devel/debian-installer/>. There in only one thing to note during installation: DO NOT select any packages to install when screen "Choose software to install" appears.
5.1 Automatic installation
After standard Debian install, log into the system as root and give these commands:
# wget -qN http://debian.cante.net/stem/netinstall.sh # sh netinstall.sh
5.2 Manual installation
After standard Debian install, log in as root and update package list /etc/apt/sources.list:
# editor /etc/apt/sources.list ... <add following lines> http://debian.cante.net/debian stable main http://debian.cante.net/debian unstable main
Reload package list
# apt-get update
If this is pristine Debian, remove unneeded packages, like compilers from the default installation to make a clean base system. This will make updates more efficient. The package can be removed (3rd command) when the job is done.
# apt-get install stem-pkg-clean # stem-clean # apt-get remove stem-pkg-clean
[optional] Set basic sh-shell to dash, instead of bash. This will speed up booting and system performance in general. However, this may cause trouble if some package is not sh-compliant. If you're unsure, skip this step.
# apt-get install stem-pkg-dash
To install install Stem Desktop, run command:
# apt-get install stem-desktop-installer
The installation is now finished. The graphical login is activated by starting xdm and selecting correct console (usually Alt-F7).
# invoke-rc.d xdm start
There are further packages to install e.g. to further reduce memory, so consult listing
# apt-cache search ^stem-
5.3 About Internet browser
The basic browser that Debian includes is Iceweasel (Firefox with patches) which consume fair amount of memory in a long session. An alternative browser Opera is faster and a little more memory friendly for older hardware. Stem Desktop will use Opera if it is available. Opera can be installed by adding this line to /etc/apt/sources.list.
http://deb.opera.com/opera/ stable non-free
The program is installed by running:
# apt-get update # apt-get install opera
Another software to consider is Adobe's acroread PDF viewer. The default from Debian is to use xpdf. Stem Desktop recognizes acroread in place of xpdf if it is available. Add following line to /etc/apt/sources.list:
deb ftp://ftp.nerim.net/debian-marillat/ unstable main
The program is installed by running:
# apt-get update # apt-get install acroread
5.4 Office programs
Due to large size of the Open Office, there is a question in netinstall.sh program to ask if user wants to install it. Stem Desktop includes place holders in menus for Office programs. The default office program included is Abiword for writing documents. To install later full Open Office suite manually:
# apt-get install openoffice.org openclipart-openoffice.org
You might also be interested in this article:
- How to speed up Open Office by Nick Farrell 2005-10-28 http://www.theinquirer.net/?article=27292
Picture 1. The various office programs for writing documents. For low end hardware, abiword (5M) is the best program whereas Open Office's oowriter consumes whooping 40M physical memory at startup. The lyx is a graphical frontend to LaTeX.
5.5 Multimedia, image editing and internet phone programs
As with the minimalistic approach, the picture editing and multimedia programs are quite large. They were not considered to be essential for for low end hardware. However, by using apt-get, it is easy to install packages like: gxine, gimp, gphone, skype or contact manager gaby.
The attached peripherals are subject of their own. The multitude of different devices make their own challenges to configure printing. Please consult the cups packages from Debian repository and read documentation how to enable printing features under Debian.
# apt-cache search cups # apt-get install ...
5.7 General information - The Debian packaging system
There are two Debian Netinstaller CDs: the stable (last officially released Debian) and testing (the forthcoming Debian). Stem Desktop's netinstall.sh program has been designed to be fully compatible with the Netinstaller, so packages selected are subject to the same repository as the installer.
To install newest and follow fluctuating bleeding edge development the system can be upgraded to use unstable repository. In order to activate unstable, the following line or mirror is needed in /etc/apt/sources.list
deb http://ftp.debian.org/debian/ unstable main
To update the list of packages, run command:
# apt-get update
To upgrade the system to latest development line
# apt-get upgrade # apt-get dist-upgrade
WARNING: The consequencies of moving to unstable are unpredictable and require prior experience how to manage Debian and solve conflicting problems that will arise. For most part upgrading only to testing is a better choice.
5.8 Additional light weight packages
There are few packages that Stem Desktop will automatically use (see /etc/stem/stem.conf) if they are installed. The notation N+N means how much physical reserved memory and virtual memory (on disk) the program takes in megabytes. The values given were measured at startup, and they are not to be considered absolute, only informative to show the relative differences.
Packages from Debian repositories:
- centericq - a console based instant messanger for ICQ2000, Yahoo!, AIM, MSN, IRC and Jabber (9+3). Another good similar console program is naim. Read more about different Instant Messaging Clients at Freshmeat
- grabc - Images; Grab color of pixel using crosshair cursor (2+1). There is also handy gcolor2 graphical color, hue, saturation and RGB value selector utility.
- sylpheed-claws-gtk2 - Mail; Nicer graphics, moderate memory consumption (10+16); compared to sylpheed-claws application (3+13).
- tinyirc - Fast console program which is much smaller than any graphical IRC client (2+1).
- xfe - Windows-a-like file manager. Moderate memory consumption (12+6) compared to endeavour2 (6+6).
Other programs that can be recommended for low end hardware from standard Debian repositories. For more information on very light Mail servers, refer to Mutt's summary page <http://wiki.mutt.org/?LightSMTPagents>.
- emelfm - Two pane file manager for low memory hunters, who also need keyboard and macro features (GTK; 6+4).
- fspanel - Extremely light weight "panel" for those window managers (aewm++ etc.) that do not have one by default (GTK; 1+3). There is also fbpanel, but it consumes considerable more memory (GTK; 6+13).
- gftp - FTP client for "push" file transfers (GTK; 7+11). In many times superceded by more secure ssh client programs.
- gtklp - Front end to CUPS printing system (GTK; 11+7).
- gtick - Metronome for musicians (GTK2; 19+6).
- ted - RTF (Rich Text Format) editor, comparable to Abiword. Another interesting program is lyx for WYSIWYG TeX typesetting editor.
- thttpd - Supports CGI, SSI, HTTP/1.1 virtual server support. This one is quite small and fast. The smallest is bozohttpd included in Stem Desktop which can serve only static web pages and directories.
- tkman - Manual page viewer (Tk; 10+2), but unfortunately brings Tk libraries with it.
- wordinspect - Simple, yet effective dictionary program. Try mouse-3 to jump to a new word definition (GTK; 5+2).
- rippex - CD ripper which uses cdparanoia (GTK).
Packages available from Stem repository. These are included in meta package stem-pkg-unofficial:
- beaver - Editor; tabbed file; very small memory footprint (2+3). Smaller than Debian's leafpad which consumes (6+6). Beaver was included in Debian, but discontinued 2005-03-16 due to lack of anybody maintaining it.
Picture 2. Memory consumption of various graphical editors. The simplest graphical editor in Debian can be considered leafpad that is just like Windows notepad. Interestingly Emacs isn't consuming much more than leafpad with basic setup, so the "bloat" image associated with the program is due to additional lisp libraries and programs that quicly bring memory consumption up 20-30M in normal use. The beaver offers the best performance for low memory systems.
- gcrontab - Lighweight scheduled tasks manager (5+3). Package was suggested to be included in Debian 2005-03-31.
- gxhost - Graphical xhost(1) access control utility for X display (5+3). Package was suggested to be included in Debian 2005-03-13.
- ircatlite - Extremely light weight GTK based IRC client (6+3). Much lighter than Tk based xchat (20+7). This program's writer was last seen 1990. It was ported for Stem Desktop project due to being extremely small client.
6.0 STEM DESKTOP FRAMEWORK
Package which trims down a pristine Debian installation in order to reduce download times during upgrades. The assumption is that bandwidth is costly for modems and thus any package that is not needed, is removed to inhibit updates. A pristine Debian installation contains lot of programs to remove. These include compilers, software development tools, heavy mail servers etc.
Several low level packages that configure particular program for use with Stem desktop. An example: stem-pkg-dropbear modifies standard dropbear SSH server installation so that it is launched from inetd instead of running as a standalone service. This will save memory.
Meta package that will pull in almost all other packages. When this package is installed, the Recommends: and Suggests: heading will tell during install what have been left out for user to decide.