Difference between revisions of "How to save memory"

From ThinkWiki
Jump to: navigation, search
(Reverting spam "Under construction" message)
 
(60 intermediate revisions by 28 users not shown)
Line 1: Line 1:
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.
+
{| width="100%"
 +
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__
 +
|style="vertical-align:top" |This page is meant as a collection of information on how to save memory to make Linux work reasonable on older systems with limited amount of RAM.
 +
 
 +
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 consciously 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==
 
==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.
+
The common desktop environments GNOME and KDE are focused more on features, integration, and beauty rather than on saving resources. Understandable, but running Linux on an older ThinkPad with limited RAM requires a focus on limiting resource usage. The good thing about Linux is that a lot of things stay adjustable and customizable. 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:
 +
* [http://www.fltk.org/ FLTK]
 +
* [http://www.fox-toolkit.org/ FOX toolkit]
 +
* [http://www.gnustep.org GNUstep toolkit]
 +
* [http://www.gtk.org/ GTK] (not recommended, use GTK 2 if possible)
 +
* [http://www.gtk.org/ GTK 2]
 +
* [http://www.lesstif.org/ Lesstif] / [http://www.openmotif.org/ OpenMotif]
 +
* [http://www.trolltech.com/products/qt/index.html QT]
 +
* [http://www.windowmaker.org/development-wings.html WINGs] (kind of a lightweight GNUstep toolkit, provided by the WindowMaker developers)
 +
* [http://www.x.org/ X Toolkit]
 +
 
 +
Of those, at current state, there are enough applications for the X Toolkit, GTK, GTK 2 and QT to provide you with a solution for every task you should want.
  
 
===GNOME===
 
===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.
+
It's 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. Sound 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.
+
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.
 
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 of 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 above 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.
+
So first off configure your login manager not to 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===
 
===KDE===
 
+
{{Todo|...}}
  
 
===Alternative Desktop Environments===
 
===Alternative Desktop Environments===
 
First of all, it is important to notice that GNOME and KDE are not the only Desktop Environments around.
 
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:
 
Other complete (featuring most of: window management, session management, desktop management, file management and panel) desktop environments are:
*[http://xfce.org/ XFCE]
+
* [http://xfce.org/ XFCE] <tt>uses GTK 2</tt>
*[http://ede.sourceforge.net Equinox Desktop Environment]
+
* [http://rox.sourceforge.net ROX Desktop]
*[http://www.nongnu.org/antiright/ AntiRight Desktop Environment]
+
* [http://ede.sourceforge.net Equinox Desktop Environment] <tt>uses eFLTK, a modified version of FLTK</tt>
*[http://foxdesktop.sourceforge.net/ Fox Desktop Environment]
+
* [http://www.nongnu.org/antiright/ AntiRight Desktop Environment] <tt>uses LessTif / OpenMotif</tt>
 +
* [http://foxdesktop.sourceforge.net/ FOX Desktop Environment] <tt>uses FOX Toolkit</tt>
 +
* [http://www.gnustep.org/ GNUstep] <tt>provides it's own toolkit</tt>
 +
* [[http://www.lxde.org/ LXDE, the Lightweight X11 Desktop Environment]] <tt>uses GTK-2</tt>
  
 
But also, some Window Managers exceed the task of managing windows towards providing a functional workbench. See below for a list.
 
But also, some Window Managers exceed the task of managing windows towards providing a functional workbench. See below for a list.
Line 28: Line 52:
  
 
====Window Manager====
 
====Window Manager====
If you want to build your own customized desktop, a good start is choosing the window manager of your liking.
+
If you want to build your own customized desktop, a good start is choosing the window manager of your liking.  A list of window managers is at [http://xwinman.org].
  
 
Here's a list of some of them:
 
Here's a list of some of them:
 
*including basic Desktop Environment functionality
 
*including basic Desktop Environment functionality
 
**the [[Wikipedia:NextStep|NextStep]] alike ones
 
**the [[Wikipedia:NextStep|NextStep]] alike ones
***[http://www.windowmaker.org/ WindowMaker] (probably the most widespread NextStep like WM)
+
***[http://www.windowmaker.org/ WindowMaker] <tt>(probably the most widespread NextStep like WM)</tt>
***[http://www.afterstep.org/ AfterStep] (another one of those)
+
***[http://www.afterstep.org/ AfterStep] <tt>(another one of those)</tt>
 +
**the Blackbox-like ones
 
***[http://blackboxwm.sourceforge.net/ BlackBox]
 
***[http://blackboxwm.sourceforge.net/ BlackBox]
***[http://fluxbox.sourceforge.net/ FluxBox] (tabbed windows, lighweight)
+
***[http://fluxbox.sourceforge.net/ FluxBox] <tt>(tabbed windows, lighweight)</tt>
***[http://www.pekwm.org PekWM] (kind of a one man show, but feature rich and extremely customizable)
+
***[http://www.icculus.org/openbox/ OpenBox] <tt>(written from scratch to be fully ICCCM and EWMH compliant, fast and light-weight)</tt>
 
**others
 
**others
***[http://www.icewm.org/ IceWM] (lightweight, widespread)
+
***[http://www.icewm.org/ IceWM] <tt>(lightweight, widespread)</tt>
 +
***[http://enlightenment.sourceforge.net/ Enlightenment] <tt>(lots of features and eye candy)</tt>
 +
***[http://www.pekwm.org PekWM] <tt>(kind of a one man show, but feature rich and extremely customizable)</tt>
 
*pure WindowManagers  
 
*pure WindowManagers  
 
**[http://golem.sourceforge.net/ Golem]
 
**[http://golem.sourceforge.net/ Golem]
**[http://home.earthlink.net/~lab1701/larswm/ LarsWM] (unique tiling Window Manager)
+
**[http://home.earthlink.net/~lab1701/larswm/ LarsWM] <tt>(unique tiling Window Manager)</tt>
 +
**[http://www.nongnu.org/ratpoison/ ratpoison] <tt>(modeled after gnu screen)</tt>
 +
**[http://fvwm.org/ fvwm] <tt>(small but powerful)</tt>
 +
**[http://www.jfc.org.uk/software/lwm.html lwm] <tt>(very small, and fast)</tt>
 +
**[http://www.all-day-breakfast.com/wm2/ wm2] <tt>really small Window Manager</tt>
 +
**[http://www.all-day-breakfast.com/wmx/ wmx] <tt>slightly more featureful version of wm2</tt>
 +
**[http://wmii.suckless.org wmii] <tt>keyboard driven approach, very small, dynamic window managing</tt>
 +
**[http://dwm.suckless.org dwm] <tt>keyboard-only driven approach, yet smaller than wmii, dynamic window managing</tt>
  
 
====Taskbar/Panel====
 
====Taskbar/Panel====
Line 48: Line 82:
  
 
Here's a collection of independant low resource panels:
 
Here's a collection of independant low resource panels:
*[http://www.chatjunkies.org/fspanel/ F***ing Small Panel]
+
*[http://www.chatjunkies.org/fspanel/ F***ing Small Panel] <tt>(doesn't use any toolkit)</tt>
*[http://freshmeat.net/projects/hpanel/ HPanel]
+
*[http://freshmeat.net/projects/hpanel/ HPanel] <tt>(doesn't use any toolkit)</tt>
*[http://fbpanel.sourceforge.net/ fbpanel]
+
*[http://fbpanel.sourceforge.net/ fbpanel] <tt>(depends on GTK 2)</tt>
*[http://jodrell.net/projects/perlpanel Perl Panel]
+
*[http://jodrell.net/projects/perlpanel Perl Panel] <tt>(depends on GTK 2, gnomevfs, perl)</tt>
 +
*[http://www.gkrellm.net/ GKrellM] <tt>(depends on GTK 2, flexible plugin based skinable vertical panel)</tt>
 +
 
 +
Furthermore most of the windowmanagers allow you to have something like a panel/taskbar configured, and system tray applications like [http://stalonetray.sourceforge.net/ stalonetray] supply support for  persistent applications (i.e. those that on quit do not quit but minimize to a tray icon) like Skype.
  
 
====Desktop Pinboard====
 
====Desktop Pinboard====
Line 57: Line 94:
  
 
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:
 
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:
* [http://idesk.sourceforge.net/ iDesk]
+
* [http://idesk.sourceforge.net/ iDesk] <tt>(recent versions need imlib2 only)</tt>
  
 
====File Manager====
 
====File Manager====
Line 65: Line 102:
  
 
The following list provides an overview.
 
The following list provides an overview.
*browser gui
+
*FLTK
** [http://www.musikwissenschaft.uni-mainz.de/~ag/xplore/xplore.php Xplore] (lightweight, productive 4 pane concept)
+
** [http://www.oksid.ch/flfm/ Fast Light File Manager] <tt>(spacial gui)</tt>
** [http://roland65.free.fr/xfe/ X File Explorer] (can operate in two pane mode as well)
+
* FOX toolkit
** [http://blog.perldude.de/projects/filer/ Filer] (can operate in two pane mode as well)
+
** [http://roland65.free.fr/xfe/ X File Explorer] <tt>(browser and two pane gui)</tt>
** [http://xffm.sourceforge.net/ XFFM] (the file manager from XFCE, can operate in spacial mode as well)
+
*GTK
** [http://logicaldesktop.sourceforge.net/ Logical Desktop] (actually a very special approach)
+
** [http://www.kaisersite.de/dfm/ Desktop File Manager] <tt>(spacial gui, incl. desktop icon management)</tt>
*spacial gui
+
** [http://www.uwyn.com/projects/fm/ FM] <tt>(spacial, MAC OS 9 like gui)</tt>
** [http://www.musikwissenschaft.uni-mainz.de/~ag/xfm/ X File Manager] (extremely lightweight)
+
** [http://radekc.regnet.cz/ Seksi Commander] <tt>(two pane gui)</tt>
** [http://rox.sourceforge.net/ ROX Filer] (highly productive, incl. panel and desktop icon management)
+
*GTK 2
** [http://www.kaisersite.de/dfm/ Desktop File Manager] (incl desktop icon management)
+
** [http://rox.sourceforge.net/ ROX Filer] <tt>(highly productive spacial gui, incl. panel and desktop icon management)</tt>
** [http://www.uwyn.com/projects/fm/ FM] (MAC OS 9 like gui)
+
** [http://blog.perldude.de/projects/filer/ Filer] <tt>(browser and two pane gui, requires Perl)</tt>
** [http://www.oksid.ch/flfm/ Fast Light File Manager]
+
** [http://xffm.sourceforge.net/ XFFM] <tt>(browser and spacial gui, requires some XFCE libs)</tt>
*two pane gui
+
** [http://logicaldesktop.sourceforge.net/ Logical Desktop] <tt>(browser gui, actually a very special approach)</tt>
** [http://www.boomerangsworld.de/worker/ Worker] (highly productive, lightweight and flexible)
+
** [http://tuxcmd.sourceforge.net/ Tux Commander] <tt>(two pane gui)</tt>
** [http://xnc.dubna.su/ X Northern Captain] (interesting, flexible file manager)
+
** [http://www.nongnu.org/gcmd/index.html Gnome Commander] <tt>(two pane gui)</tt>
** [http://tuxcmd.sourceforge.net/ Tux Commander]
+
** [http://emelfm2.net/emelFM2/ emelFM2] <tt>(two pane gui with full customizable menu and toolbar, the best for power users)</tt>
** [http://www.hi-net.cz/blaza/bfcommander/en/index.html BF-Commander]
+
** [http://thunar.xfce.org/index.xhtml Thunar] <tt>(requires some XFCE libs)</tt>
** [http://radekc.regnet.cz/ Seksi Commander]
+
** [http://pcmanfm.sourceforge.net/ PCMan File Manager] <tt>(An extremly fast and lightweight file manager which features tabbed browsing and user-friendly interface. Requires GTK+ version 2.8.x)</tt>
** [http://users.tkk.fi/~mkivinie/X-Files/ X-Files]
+
* OpenMotif
*3D gui
+
** [http://www.musikwissenschaft.uni-mainz.de/~ag/xplore/xplore.php Xplore] <tt>(browser gui with productive 4 pane concept)</tt>
** [http://www.determinate.net/webdata/seg/tdfsb.html TDFSB] (the most impressing 3D file browser so far)
+
* QT 2
** [http://www.forchheimer.se/bfm/ Brutal File Manager] (more for fun than productivity)
+
** [http://www.hi-net.cz/blaza/bfcommander/en/index.html BF-Commander] <tt>(two pane gui)</tt>
** [http://turma.sourceforge.net/software/3dfile/ 3DFile]
+
*Qt3
** [http://orbis.sourceforge.net/ Orbis]
+
** [http://www.beesoft.org/download_bsc.html Beesoft Commander] <tt> (fast & easy two panel file manager, like Norton Commander)</tt>
 +
* Tcl/Tk
 +
** [http://users.tkk.fi/~mkivinie/X-Files/ X-Files] <tt>(two pane gui)</tt>
 +
*X Toolkit
 +
** [http://www.musikwissenschaft.uni-mainz.de/~ag/xfm/ X File Manager] <tt>(spacial gui)</tt>
 +
** [http://www.boomerangsworld.de/worker/ Worker] <tt>(two pane gui, highly productive and configurable)</tt>
 +
** [http://xnc.dubna.su/ X Northern Captain] <tt>(interesting flexible two pane gui)</tt>
 +
*3D Filemanagers
 +
** [http://www.determinate.net/webdata/seg/tdfsb.html TDFSB] <tt>(3D gui, the most impressing 3D file browser so far)</tt>
 +
** [http://www.forchheimer.se/bfm/ Brutal File Manager] <tt>(3D gui more for fun than productivity)</tt>
 +
** [http://turma.sourceforge.net/software/3dfile/ 3DFile] <tt>(3D gui)</tt>
 +
** [http://orbis.sourceforge.net/ Orbis] <tt>(3D gui)</tt>
 +
 
 +
==Choosing applications==
 +
===Web Browser===
 +
This is highly dependent on the way you use your browser, it's often worth it to try out all and just track general
 +
memory usage. Remember that <tt>top</tt> and <tt>ps</tt> don't report correct memory usage, track totals only.
 +
 
 +
====Firefox====
 +
Firefox is graphical web browser. One can install features like AdBlock and FlashClicktoplay which will decrease memory  and
 +
processor usage by hiding Flash and Java -adverts.
 +
 
 +
====Opera====
 +
Opera is graphical web browser. You can easily enable/disable plug-ins and java (press F12) and decrease memory usage.
 +
Opera uses QT as toolkit, so you may shave off some Mbytes off memory usage by using dynamically linked version if you use KDE.
 +
 
 +
====Konqueror====
 +
Konqueror is graphical web browser. It's integrated with KDE and has several advanced features (esp. ca. KDE 3.5).
 +
You may save some megabytes by using it instead of other browsers when using KDE.
 +
It's not necessarily heavy even when used without running KDE.
 +
 
 +
====Dillo====
 +
Dillo is minimalistic and very small graphical web browser.
 +
 
 +
====Elinks/Lynx====
 +
elinks/lynx are both text mode web browsers. <tt>elinks</tt> handles tables and formatting much nicer than <tt>lynx</tt>.
 +
Both go very easy on memory footprint.
 +
 
 +
{{Todo|...}}
  
 
==Disabling unneeded system deamons==
 
==Disabling unneeded system deamons==
Line 100: Line 175:
  
 
==Adjusting filesystems==
 
==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 <code>/etc/fstab</code>.
+
You can also try to optimize memory usage by making sure that you have as little as possible of your filesystem residing in RAM. To do this make sure that the following mount points are set to reside on your harddisk in {{path|/etc/fstab}}. {{Todo|how?}}
 
* /dev (not possible if you use udev)
 
* /dev (not possible if you use udev)
 
* /tmp
 
* /tmp
 +
 +
Also make sure that you mount filesystems with extensive usage with noatime parameter (mount -o remount,ro /...), which disabled access time writes every time you access some file. Note that many incremental backups needs atime to work, such backups will then behave like full backup everytime. This depends on backup systems.
 +
 +
==Other tips==
 +
===Disk space===
 +
When using Debian/Ubuntu/other derivative, use <tt>aptitude</tt> as package manager, and use it as soon as possible. Use it and only it to install and remove packages.
 +
 +
One of its most useful features is that it tracks packages you install and marks packages installed via dependency as such, so when you remove a package that is no longer used, or package updates and doesn't use a library anymore, that dependency will get uninstalled.
 +
 +
You can mark packages installed as automatically installed by hitting 'M' (uppercase m), it will be marked for deinstallation if it's not longer required.
 +
 +
You could also install <tt>localepurge</tt>, which will remove all unneeded locales and localized manpages for packages you install.
 +
 +
===System clock===
 +
<tt>ntpd</tt> can occupy around 4MB of memory, which is a substantial proportion of many older systems' total. [http://chrony.sunsite.dk/ <tt>chrony</tt>] is a pair of programs that replace the standard <tt>ntp</tt> and require much less memory.

Latest revision as of 16:19, 15 November 2010

This page is meant as a collection of information on how to save memory to make Linux work reasonable on older systems with limited amount of RAM.

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 consciously 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 focused more on features, integration, and beauty rather than on saving resources. Understandable, but running Linux on an older ThinkPad with limited RAM requires a focus on limiting resource usage. The good thing about Linux is that a lot of things stay adjustable and customizable. 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:

Of those, at current state, there are enough applications for the X Toolkit, GTK, GTK 2 and QT to provide you with a solution for every task you should want.

GNOME

It's 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. Sound 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 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. A list of window managers is at [1].

Here's a list of some of them:

  • including basic Desktop Environment functionality
    • the NextStep alike ones
    • the Blackbox-like ones
      • BlackBox
      • FluxBox (tabbed windows, lighweight)
      • OpenBox (written from scratch to be fully ICCCM and EWMH compliant, fast and light-weight)
    • others
      • IceWM (lightweight, widespread)
      • Enlightenment (lots of features and eye candy)
      • PekWM (kind of a one man show, but feature rich and extremely customizable)
  • pure WindowManagers
    • Golem
    • LarsWM (unique tiling Window Manager)
    • ratpoison (modeled after gnu screen)
    • fvwm (small but powerful)
    • lwm (very small, and fast)
    • wm2 really small Window Manager
    • wmx slightly more featureful version of wm2
    • wmii keyboard driven approach, very small, dynamic window managing
    • dwm keyboard-only driven approach, yet smaller than wmii, dynamic window managing

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:

Furthermore most of the windowmanagers allow you to have something like a panel/taskbar configured, and system tray applications like stalonetray supply support for persistent applications (i.e. those that on quit do not quit but minimize to a tray icon) like Skype.

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:

  • iDesk (recent versions need imlib2 only)

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.

Choosing applications

Web Browser

This is highly dependent on the way you use your browser, it's often worth it to try out all and just track general memory usage. Remember that top and ps don't report correct memory usage, track totals only.

Firefox

Firefox is graphical web browser. One can install features like AdBlock and FlashClicktoplay which will decrease memory and processor usage by hiding Flash and Java -adverts.

Opera

Opera is graphical web browser. You can easily enable/disable plug-ins and java (press F12) and decrease memory usage. Opera uses QT as toolkit, so you may shave off some Mbytes off memory usage by using dynamically linked version if you use KDE.

Konqueror

Konqueror is graphical web browser. It's integrated with KDE and has several advanced features (esp. ca. KDE 3.5). You may save some megabytes by using it instead of other browsers when using KDE. It's not necessarily heavy even when used without running KDE.

Dillo

Dillo is minimalistic and very small graphical web browser.

Elinks/Lynx

elinks/lynx are both text mode web browsers. elinks handles tables and formatting much nicer than lynx. Both go very easy on memory footprint.

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 residing in RAM. To do this make sure that the following mount points are set to reside on your harddisk in /etc/fstab.

TODO
how?
  • /dev (not possible if you use udev)
  • /tmp

Also make sure that you mount filesystems with extensive usage with noatime parameter (mount -o remount,ro /...), which disabled access time writes every time you access some file. Note that many incremental backups needs atime to work, such backups will then behave like full backup everytime. This depends on backup systems.

Other tips

Disk space

When using Debian/Ubuntu/other derivative, use aptitude as package manager, and use it as soon as possible. Use it and only it to install and remove packages.

One of its most useful features is that it tracks packages you install and marks packages installed via dependency as such, so when you remove a package that is no longer used, or package updates and doesn't use a library anymore, that dependency will get uninstalled.

You can mark packages installed as automatically installed by hitting 'M' (uppercase m), it will be marked for deinstallation if it's not longer required.

You could also install localepurge, which will remove all unneeded locales and localized manpages for packages you install.

System clock

ntpd can occupy around 4MB of memory, which is a substantial proportion of many older systems' total. chrony is a pair of programs that replace the standard ntp and require much less memory.