How to save memory
This page is meant as a collection of information on how to save memory to make Linux work reasonable on older system with limited amount of RAM.
Contents
Most distributions nowadays don't take much care about it anymore, so there are a lot of things you can do to save memory. To get a smoothly working linux environment on a low memory machine you will need to conciously choose a lot of aspects of your system, most importantly the graphical environment, desktop environment and applications. This page provides detailed information about these various optimization possibilities.
Alternative graphical environments
Todo...
Streamlining the desktop environment
The common Desktop environments GNOME and KDE are - in their modern state - focused more on features, integration and beauty than on resource saving. Understandable. But running Linux on an older ThinkPad with limited RAM requires concious and sensitive resource usage more than anything else. The good thing about Linux is that a lot of things stay adjustable and costumizable. So lets see what we can do about desktops.
One of the most important things is to decide for one graphical widget library and stick with that when you are choosing your desktop environment and applications. Having several toolkits in use means more libraries being loaded and hence more memory being used by those. Possibilities are:
- standard X toolkit
- GTK (not recommended, use GTK 2 if possible)
- GTK 2
- QT
- FLTK
- Lesstif
- Wing
GNOME
Its like with humans, the worst feature is in most cases also the best one. For GNOME it is probably the many little parts it consists of. Makes it hard to install, but enables one to customize the installation. So, the first thing you should do to streamline GNOME is not to launch it. Sounds stupid? Well, lets have a look.
GNOME is basically a set of libraries built around the GTK+ libs and extending its functionality. Add some nice little applications, a session manager, a panel, beautiful icons and some other stuff and you have GNOME as you know it. Reversing those additions is what you can do to use GNOME applications on a machine that this desktop environment would normally take your nerves on.
The GNOME panel, the session manager, the desktop manager and the window manager are all parts of GNOME that eat a lot of memory for something that others can do in a maybe little less beautiful but much more resource saving way. So first off configure your login manager not to use launch gnome-session at login. If you are using GDM this is quite straight forward, you just need to add a different session script, launching your favorite window manager. See the list below and pick one, lets say i.e. WindowMaker. WindowMaker uses a desktop menu, a dock and a notification area to provide you with an organized way of launching applications and iconfying running ones. So we don't need a panel anymore. Also, think if you really need icons on your desktop. If you do, think about using something like ROX filer instead of nautilus for that. In any case, tell nautilus not to manage the desktop by default by unchecking the according setting within gconf-editor. To keep GNOME applications happy we would need to have gconf and gnome-settings-manager running at every session start. One way to do this is to either include them in your new session script. They both need to be running to make GNOME applications realize their settings properly.
KDE
Todo...
Alternative Desktop Environments
First of all, it is important to notice that GNOME and KDE are not the only Desktop Environments around. Other complete (featuring most of: window management, session management, desktop management, file management and panel) desktop environments are:
But also, some Window Managers exceed the task of managing windows towards providing a functional workbench. See below for a list.
Building your own Desktop
Window Manager
If you want to build your own customized desktop, a good start is choosing the window manager of your liking.
Here's a list of some of them:
- including basic Desktop Environment functionality
- pure WindowManagers
Taskbar/Panel
Another thing that especially users coming to Linux from the Windows world would probably like is a Panel or Taskbar.
Here's a collection of independant low resource panels:
Desktop Pinboard
Then, the next thing you might be looking for is how to get icons onto your desktop. Usually this is done by the file manager who displays the content of a special directory as icons on the desktop. See the File Manager section to follow this approach.
However, you might decide for a really lightwight file manager which doesn't offer this feature. In that case all hope is not lost, for there are also special programs specialized in desktop icon management. Such are:
File Manager
File Managers are the fourth really important compontent of a desktop environment. There are plenty out their ranging from resource hugs to really lightweight and slim ones.
File Managers come with three distinct general user interface approaches: the two pane gui, the spacial and the browser gui. The browser gui is the one the Windows Explorer starting from Windows 2000 uses as well as earlier versions of Nautilus. The spacial view is the one known from Windows 95 and more recent versions of Nautilus. The two pane view is know to many from Norten Commander, Directory Opus or your favorite FTP client.
The following list provides an overview.
- browser gui
- Xplore (lightweight, productive 4 pane concept)
- X File Explorer (can operate in two pane mode as well)
- Filer (can operate in two pane mode as well)
- XFFM (the file manager from XFCE, can operate in spacial mode as well)
- Logical Desktop (actually a very special approach)
- spacial gui
- X File Manager (extremely lightweight)
- ROX Filer (highly productive, incl. panel and desktop icon management)
- Desktop File Manager (incl desktop icon management)
- FM (MAC OS 9 like gui)
- Fast Light File Manager
- two pane gui
- Worker (highly productive, lightweight and flexible)
- X Northern Captain (interesting, flexible file manager)
- Tux Commander
- BF-Commander
- Seksi Commander
- X-Files
- 3D gui
- TDFSB (the most impressing 3D file browser so far)
- Brutal File Manager (more for fun than productivity)
- 3DFile
- Orbis
Choosing applications
Todo...
Disabling unneeded system deamons
Another thing you can do to improve performance is to get rid of unneaded system daemons launched from your init scripts. Disable them by using the according configuration interface of your distro or by deleting links in the according runlevel directories (usually in /etc/rc.d/
).
Daemons you usually don't need:
- httpd (Apache web server)
- mysqld (MySQL database server)
- smbd (SMB windows filesharing server)
- pppd (PPP server for connections through modems and serial lines)
Adjusting filesystems
You can also try to optimize memory usage by making sure that you have as little as possible of your filesystem residign in RAM. To do this make sure that the following mount points are set to reside on your harddisk in /etc/fstab
.
- /dev (not possible if you use udev)
- /tmp