Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > 965e33040dd61030a94f0eb89877aee8 > files > 1497

howto-html-en-20080722-2mdv2010.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Recycling of Hardware</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Linux Ecology-HOWTO"
HREF="index.html"><LINK
REL="UP"
TITLE="Extending the Life Cycle of your Hardware"
HREF="ecology-howto-lifecycle.html"><LINK
REL="PREVIOUS"
TITLE="Extending the Life Cycle of your Hardware"
HREF="ecology-howto-lifecycle.html"><LINK
REL="NEXT"
TITLE="Other Techniques"
HREF="ecology-howto-lifecyle-other-techniques.html"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Linux Ecology-HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="ecology-howto-lifecycle.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 8. Extending the Life Cycle of your Hardware</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="ecology-howto-lifecyle-other-techniques.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="ecology-howto-lifecyle-hardware"
></A
>8.1. Recycling of Hardware</H1
><P
>&#13;The commercial computer market is largely driven by vendors seeking to sell new hardware and software. There is no commercial marketing benefit in promoting reuse.
</P
><P
>&#13;Hence Linux doesn't require big hardware, it's very useful if you like or need to use old and small hardware.
</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN564"
></A
>8.1.1. Supported CPU Families</H2
><P
>&#13;Linux runs on Intel-compatible processors (starting from the 386) and compatible processors by AMD, Cyrix and others. 
It also supports a long list of 32 and 64 bit processors.
The whole list can be found in the
<A
HREF="http://sosdg.org/~coywolf/lxr/source/arch/"
TARGET="_top"
><B
CLASS="command"
>arch</B
>
directory in the Linux kernel sources</A
>.
</P
><P
>&#13;The ARM architecture is a fast AND low-power alternative,
used in a great number of embedded systems (Linux and others).
See the <A
HREF="http://www.arm.linux.org.uk/"
TARGET="_top"
>&#13;ARM Linux Project</A
> for a wealth of Linux
resources for ARM.
</P
><P
>&#13;Linux is also supported on small, cheap and low power processors with no
Memory Management Unit (MMU), provided they are 32 bit ones. 
See the <A
HREF="http://uclinux.org/"
TARGET="_top"
>uClinux</A
> project for details.
</P
><P
>&#13;Mainstream Linux requires at least a 32 bit processor
and doesn't support any 16 bit ones and will never do.
However, there are separate efforts from
the <A
HREF="http://elks.sourceforge.net/"
TARGET="_top"
>ELKS</A
> project
to reuse Linux code for the 286 CPU family. 
</P
><P
>&#13;On platforms supported by Linux, or even on some 16 bit processors,
you may also use the <A
HREF="http://ecos.sourceware.org/"
TARGET="_top"
>eCos</A
>
operating system. This is another free, POSIX compatible operating system
targeting very small devices (possibly with real-time requirements). 
</P
><P
>&#13;If you like, you may use <A
HREF="http://www.cs.vu.nl/~ast/minix.html"
TARGET="_top"
>Minix</A
>,
one of the predecessors of Linux. Minix supports 8088 to 286 with as little as 640K memory.
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN579"
></A
>8.1.2. Linux Applications for Old Computers</H2
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN581"
></A
>8.1.2.1. RULE</H3
><P
>&#13;Hardware is only as old as the software it runs. 
<A
HREF="http://www.rule-project.org/"
TARGET="_top"
>RULE</A
>
wants to make modern
Free Software useable even on 5 or more years old machines, on which current
Linux distributions won't install or run too slowly.
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN585"
></A
>8.1.2.2. ISDN Router</H3
><P
>&#13;<A
HREF="http://schumann.cx/isdn-router/"
TARGET="_top"
>ISDN Router</A
> allows you to convert old hardware into a secure masquerading ISDN router, including caching nameserver, IP Port Forwarding, and on-demand channel bundling. The system fits onto a single disk, and users can change the configuration through a simple menu-based system (on the console or over telnet) and store it permanently on the disk.
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN589"
></A
>8.1.2.3. Linux LiveCD Router</H3
><P
>&#13;<A
HREF="http://www.wifi.com.ar/english/cdrouter.html"
TARGET="_top"
>Linux LiveCD Router</A
>
allows you to share and firewall your broadband
connection and use WiFi. It works with DSL, cable modem, T1, and dial-up
connections and supports inexpensive hardware such as USB and PCMCIA WiFi
and ethernet cards.
Hardware requirements:
One dedicated computer with the following minimum specifications: 486
Processor, 16 MBytes of RAM, 2X CDRom reader, floppy drive, 1 or 2 ethernet
cards. NO hard disk! Optionally a WIFI card.
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN593"
></A
>8.1.2.4. FreeS/WAN</H3
><P
>&#13;<A
HREF="http://www.freeswan.org/"
TARGET="_top"
>Linux FreeS/WAN</A
> provides IPSEC
(IP Security, which is both encryption and authentication) kernel extensions
and an IKE (Internet Key Exchange, keying and encrypted routing daemon)
as well as various rc scripts and documentation. This lets a bright Linux sysadmin
build VPN's gateways out of even old 584 and 486 PC Clone boxes.
The 1.00 version is known to inter-operate with other IPSEC and
IKE system already deployed by other vendors such as OpenBSD.
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN597"
></A
>8.1.2.5. Print Server</H3
><P
>&#13;A common use for an old computer is running a print server on it.
</P
></DIV
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN600"
></A
>8.1.3. Small Linux Distributions for Old Computers</H2
><P
></P
><UL
><LI
><P
>&#13;<A
HREF="http://www.damnsmalllinux.org/"
TARGET="_top"
>Damn Small Linux</A
>
- A full featured Live-CD distribution derived from Knoppix,
with a very active community. It fits within 50 MB
and runs fine on a 486 PC with 16 MB of RAM. 
Included software: Firefox, xmms, xpdf,
Sylpheed, FluxBox WM, Siag, spreadsheet, Ted word processor...
Used a lot on USB flashdisks too.
</P
></LI
><LI
><P
>&#13;<A
HREF="http://distro.ibiblio.org/pub/linux/distributions/baslinux/"
TARGET="_top"
>Basic Linux</A
>
- The lightest distro for old PCs!
It just needs 3 MB of RAM and 6 MB of disk.
Features: X graphics, window manager, clock, calculator,
text based e-mail reader, browser (links), presentations (MagicPoint),
network dial-up...
Great for using an old PC as an X terminal!
</P
></LI
><LI
><P
>&#13;<A
HREF="http://www.puppylinux.org"
TARGET="_top"
>Puppy Linux</A
>
Fast and light distribution. Works great on 10 year old computers.
Actively developed.
</P
></LI
><LI
><P
>&#13;<A
HREF="http://www.delilinux.de/"
TARGET="_top"
>DeLi Linux</A
>
- A Linux distribution for old computers, from 486 to
Pentium MMX 166 or so. It's focused on desktop usage. It includes email
clients, a graphical Web browser, an office package with word processor
and spreadsheet, etc. A full install, including XFree86 and development
tools, needs no more than 300 MB of harddisk space.
</P
></LI
><LI
><P
>&#13;<A
HREF="http://sourceforge.net/projects/smalllinux2"
TARGET="_top"
>Small Linux 2</A
>
- A distribution which is designed to run on old / low-spec PC computers (386 and 2-3 mb of ram). 
It consists of two floppy discs one,containing the kernel and the other the root system.
Built upon uClibc and Busybox.
</P
></LI
><LI
><P
>&#13;<A
HREF="http://www.mepis.com/node/90"
TARGET="_top"
>MEPISLite</A
>
- Debian based distribution targeting PCs that used to run Windows 98
(typically 128 MB of RAM, 2 GB of disk space and a 500 MHZ CPU).
</P
></LI
><LI
><P
>&#13;Using Gentoo on Old Machines
</P
><P
>&#13; "Old computers don't have to run old software. Old software does not have it's
 bugs covered and is bad for security.
</P
><P
>&#13; Most modern distros will be very sluggish when run on those machines; not
 because they use new software, but because they expect to be run on new
 machines and may automatically install large amounts of software. The thrust
 of <A
HREF="http://gentoo-wiki.com/HARDWARE_old"
TARGET="_top"
>Gentoo-on-old-hardware</A
>
 is to obtain a light, minimalist system that runs
 what you need it to and no more; unlike many proprietary OSes and the
 "heavier" distros such as Fedora, Gentoo starts very light by default."
</P
></LI
><LI
><P
>&#13;<A
HREF="http://www.minix3.org/"
TARGET="_top"
>Minix</A
>
- Not a Linux but a UNIX useful for small systems.
Minimum requirements: 386 CPU, 8 MB of RAM, 50 MB of disk space.
</P
></LI
></UL
><P
>&#13;See Wikipedia for
<A
HREF="http://en.wikipedia.org/wiki/List_of_Linux_distributions#Small_or_lightweight_distributions_for_use_with_older_machines"
TARGET="_top"
>&#13;a longer list of small Linux distributions</A
>.
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN631"
></A
>8.1.4. Dealing with Limited Resources or Tuning the System</H2
><P
>&#13;This chapter is taken from my 
<A
HREF="http://tuxmobil.org/howtos.html"
TARGET="_top"
>Linux-Mobile-Guide - A Guide for Laptops, PDAs and Mobile Phones</A
>.
</P
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN635"
></A
>8.1.4.1. Related HOWTOs</H3
><P
>&#13;
<P
></P
><UL
><LI
><P
>&#13;<A
HREF="http://tldp.org/HOWTO/Small-Memory/index.html"
TARGET="_top"
>Small-Memory-HOWTO</A
>
Describes how to run Linux on a system with a small amount of memory.
</P
></LI
></UL
>

</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN642"
></A
>8.1.4.2. Introduction</H3
><P
>&#13;To deal with limited space, memory, CPU speed and battery power, I have written this chapter.
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN645"
></A
>8.1.4.3. Small Space</H3
><DIV
CLASS="sect4"
><H4
CLASS="sect4"
><A
NAME="AEN647"
></A
>8.1.4.3.1. Introduction</H4
><P
>&#13;There are different types of techniques to gain more disk space, such as sharing of space, freeing unused or redundant space, filesystem tuning and compression. Note: some of these techniques use memory instead of space. As you will see, there are many small steps necessary to free some space.
</P
></DIV
><DIV
CLASS="sect4"
><H4
CLASS="sect4"
><A
NAME="AEN650"
></A
>8.1.4.3.2. Techniques</H4
><P
>&#13;
<P
></P
><UL
><LI
><P
>&#13;Stripping: Though many distributions come with stripped binaries today it is useful to check this. For details see <B
CLASS="command"
>man strip</B
>. To find every unstripped file you can use the <B
CLASS="command"
>file</B
> command or more convenient the tool <B
CLASS="command"
>findstrip</B
> (find it in the Debian <A
HREF="http://packages.debian.org/stable/utils/perforate"
TARGET="_top"
><B
CLASS="command"
>perforate</B
></A
> package) . Attention: don't strip libraries, sometimes the wrong symbols are removed due to a bad programming technique.
</P
><P
>&#13;A recommendation from Russell Marks &#60;rus at beeb.net&#62;:
</P
><P
>&#13;These days a lot of people compile with <B
CLASS="command"
>-g</B
>, which I find a bit annoying (though AFAIK this <B
CLASS="command"
>only</B
> loses you disk space, in practice).
</P
><P
>&#13;<B
CLASS="command"
>strip</B
> has a <B
CLASS="command"
>--strip-debug</B
> option which doesn't strip symbols, but does still get rid of the debugging stuff. This is almost as good, in many cases, and it's ok to use it on libraries. As it happens, I recently got SuSE 6.3, so I can give you a <B
CLASS="command"
>live</B
> example:

<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;bash-2.03# cd /lib
bash-2.03# ls -l libc.so.6
-rwxr-xr-x   1 root     root      4223971 Nov  6 16:22 libc.so.6
bash-2.03# strip --strip-debug libc.so.6
bash-2.03# ls -l libc.so.6
-rwxr-xr-x   1 root     root      1200355 Dec  8 00:13 libc.so.6
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
></LI
><LI
><P
>&#13;Sparse files: in the case when files contain blocks
with only null characters, these blocks can be replaced by <B
CLASS="command"
>lseek</B
>
command calls, saving space. Applications (and not the operating system) are
responsible for creating or handling such files in a correct way.
For example, both the <B
CLASS="command"
>tar</B
> and <B
CLASS="command"
>cp</B
>
commands have options for handling sparse files in a correct way.
See the <A
HREF="http://www.lrdev.com/lr/unix/sparsefile.html"
TARGET="_top"
>http://www.lrdev.com/lr/unix/sparsefile.html</A
>
page for more details and for a <B
CLASS="command"
>sparse</B
> command
to create such files. In Debian, you can also use the <B
CLASS="command"
>zum</B
> command
from the <A
HREF="http://packages.debian.org/stable/utils/perforate"
TARGET="_top"
><B
CLASS="command"
>perforate</B
></A
> package. 
</P
></LI
><LI
><P
>&#13;Remove Odd Files and Duplicates: Check your system for core files,
emacs recovery files &#60;#FILE#&#62; vi recovery files
&#60;FILE&#62;.swp, RPM recovery files &#60;FILE&#62;.rpmorig and
<B
CLASS="command"
>patch</B
> recovery files. Find duplicates, you may try
<A
HREF="http://www.shelldorado.com/scripts/cmds/finddup"
TARGET="_top"
><B
CLASS="command"
>finddup</B
></A
>.
Choose a system to name your backup,
temporary and test files, e.g. with a signature at the end.

</P
></LI
><LI
><P
>&#13;Clean Temporary Files: , e.g. <TT
CLASS="filename"
>/tmp</TT
>, there is even a tool <B
CLASS="command"
>tmpwatch</B
>.
</P
></LI
><LI
><P
>&#13;Shorten the Log Files: usually the files in <TT
CLASS="filename"
>/var/log</TT
>. There are some nice helpers for this task around, e.g. <B
CLASS="command"
>savelog</B
> .
</P
></LI
><LI
><P
>&#13;
Remove Files: Remove files which are not "necessary"
under all circumstances such as man pages, documentation
<TT
CLASS="filename"
>/usr/doc</TT
> and sources e.g.
<TT
CLASS="filename"
>/usr/src</TT
> .
</P
></LI
><LI
><P
>&#13;
Unnecessary Libraries: You may use the <A
HREF="http://www.nottingham.ac.uk/~etzpc/binstats.html"
TARGET="_top"
><B
CLASS="command"
>binstats</B
></A
>
package to find unused libraries (Thanks to Tom Ed White).
</P
></LI
><LI
><P
>&#13;Filesystem: Choose a filesystem which treats disk space
economically e.g. <B
CLASS="command"
>rsfs</B
> aka Reiser Filesystem.
Tune your filesystem e.g. <B
CLASS="command"
>tune2fs</B
>. Choose an
appropriate partition and block size.
</P
></LI
><LI
><P
>&#13;Reduce Kernel Size: Either by using only the necessary kernel
features and/or making a compressed kernel image
<B
CLASS="command"
>bzImage</B
>.
</P
></LI
><LI
><P
>&#13;Compressed read-write filesystems:
</P
><P
>&#13;- There was a project to add compression support to ext2 filesystems:
  <A
HREF="http://e2compr.sourceforge.net/"
TARGET="_top"
>e2compr</A
>.
  This project has a very limited usefulness as it is currently
  inactive and only supports very old 2.4 and 2.6 kernel versions.
  No chance to get a working patch on the latest 2.4 and 2.6 releases.
</P
><P
>&#13;- Fortunately, a very serious solution exists in the
  <A
HREF="http://www.namesys.com/v4/v4.html"
TARGET="_top"
>Reiser4 filesystem</A
>
  which includes a compression plugin. Using compression is even reported
  to be faster than not using it. Actual results should of course
  vary with the CPU and disk speed, and results might be disappointing on
  old machines. See
  <A
HREF="http://namesys.com/install_v4.html"
TARGET="_top"
>how to use Reiser4</A
>.
  This filesystem is supported on all recent kernel versions,
  and merging with mainstream is their top priority.
</P
></LI
><LI
><P
>&#13;Compressed read-only filesystems
</P
><P
>&#13;- The idea is store parts of the system (typically executables and libraries through
the <B
CLASS="command"
>/bin</B
>, <B
CLASS="command"
>/sbin</B
> and
<B
CLASS="command"
>/usr</B
> directories) in a separate, compressed and read-only
filesystem. This is great for saving space and for protecting the system from
extern attacks. However, the constraint is that software upgrades can no
longer be done when the filesystem is mounted. The whole filesystem contents must
be rebuilt and replaced at once.
</P
><P
>&#13;- <A
HREF="http://en.wikipedia.org/wiki/Cramfs"
TARGET="_top"
>CramFS</A
>
was the first implemented solution, used by many embedded system makers.
Though still maintained, it is dramatically outperformed by SquashFS.
</P
><P
>&#13;- <A
HREF="http://squashfs.sourceforge.net/"
TARGET="_top"
>SquashFS</A
>
is the solution everyone should use now. Unlike CramFS, it has
no limitations on filesystem and file size, and it achieves
much better compression and read speed (up to 5 times!). 
On slow storage (like USB flash drives), replacing ext2
with SquashFS resulting in a 50% reduction on system boot time
(observed in a Linux demo developped by <A
HREF="http://free-electrons.com"
TARGET="_top"
>Free Electrons</A
>).
</P
></LI
><LI
><P
>&#13;Partition Sharing: You may share swap-space (see
Swap-Space-HOWTO) or data partitions between different OS
(see <B
CLASS="command"
>mount</B
>).
</P
></LI
><LI
><P
>&#13;C library: use <A
HREF="http://uclibc.org/"
TARGET="_top"
>uClibc</A
> instead of the default
<A
HREF="http://www.gnu.org/software/libc/"
TARGET="_top"
>GNU C library</A
> aka <B
CLASS="command"
>glibc</B
>.
It takes approximately 400 KB instead of 1700 (glibc). It used by many embedded Linux projects
as well as by several tiny Linux distributions. It should satisfy most needs, as the whole
Debian 3.0 was ported to it. Caution: if you replace the C library, all applications
also need to be recompiled with a dedicated gcc toolchain.
</P
></LI
><LI
><P
>&#13;<A
HREF="http://busybox.net/"
TARGET="_top"
>Busybox</A
>
- A toolbox implementing most Unix commands.
It takes at most 500 KB instead of approximately 10-30 MB with GNU implementations!
It is used by almost all embedded Linux projects and small Linux distros.
Most commands are implemented, even <B
CLASS="command"
>vi</B
>, <B
CLASS="command"
>wget</B
>,
a dhcp server and client, and even a http server sufficient for most needs.
Even if some rare command options are not implemented, even an experienced
Unix user hardly makes the difference with GNU commands!
</P
></LI
><LI
><P
>&#13;Kernel: If your needs are fitted with an older kernel version, you can save some space.
</P
><P
>&#13;However, with old kernels, you will miss cool features (such as real-time preemption,
making your system much more responsive) and support for recent peripherals.
It is true that the Linux kernel accumulated bloat over the years: more features, support for more special cases...
Now that Linux is taking an increasingly dominant place in embedded systems, work is being done to control the kernel size.
The <A
HREF="http://www.selenic.com/linux-tiny/"
TARGET="_top"
>LinuxTiny</A
> project releases a set of patches to
the Linux kernel sources. In the <B
CLASS="command"
>Configure Standard Kernel Features for Small Systems</B
>
kernel configuration section, you can unselect features you do not need in a simple computer.
The minimum compressed size you can achieve for a Linux 2.6 kernel for a simple PC is approximately 350 KB. 
Note that more and more LinuxTiny changes are now available in the standard Linux kernel (no patching necessary).
</P
><P
>&#13;With the latest kernel releases, you may also try 
the <A
HREF="http://people.redhat.com/~mingo/realtime-preempt"
TARGET="_top"
>&#13;real-time preemption patches</A
> from Ingo Molnar.
When full preemption is enabled, it adds unprecedented
responsiveness to the Linux kernel. The latency is much reduced,
suitable for real real-time systems (less than 100 us!).
It is definitely worth trying on old systems
to give them a new youth and improve the user experience!
</P
></LI
><LI
><P
>&#13;
GUI: Avoid as much Graphical User Interface (GUI) as possible.
</P
></LI
><LI
><P
>&#13;Tiny Distributions: There are some distributions available which fit from one 3.5" floppy to 10MB disk space and fit for small memories, too. See <A
HREF="http://tuxmobil.org/howtos.html"
TARGET="_top"
>Laptop-HOWTO</A
>
</P
></LI
></UL
>

</P
></DIV
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN751"
></A
>8.1.4.4. Harddisk Speed</H3
><P
>&#13;Use the tool <B
CLASS="command"
>hdparm</B
> to set up better harddisk performance. Though I have seen laptop disk enabled with <B
CLASS="command"
>stripping</B
>, I can't see a reason to do so, because IMHO aka RAID0 stripping needs at least to different disks to increase performance.
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN756"
></A
>8.1.4.5. Small Memory</H3
><DIV
CLASS="sect4"
><H4
CLASS="sect4"
><A
NAME="AEN758"
></A
>8.1.4.5.1. Related HOWTOs</H4
><P
>&#13;
<P
></P
><UL
><LI
><P
>&#13;<A
HREF="http://tldp.org/HOWTO/Small-Memory/index.html"
TARGET="_top"
>Small-Memory-mini-HOWTO</A
> by Todd Burgess 
</P
></LI
><LI
><P
>&#13;
<A
HREF="http://tldp.org/HOWTO/4mb-Laptops.html"
TARGET="_top"
>4MB Laptop-HOWTO</A
> by Bruce Richardson.
</P
></LI
><LI
><P
>&#13;<A
HREF="http://www.tldp.org/HOWTO/Module-HOWTO/"
TARGET="_top"
>Linux Loadable Kernel Module HOWTO</A
>by Bryan Henderson.
</P
></LI
><LI
><P
>&#13;<A
HREF="http://www.tldp.org/HOWTO/Kerneld/"
TARGET="_top"
>Kerneld-mini-HOWTO</A
> by Henrik Storner.
</P
></LI
></UL
>

</P
></DIV
><DIV
CLASS="sect4"
><H4
CLASS="sect4"
><A
NAME="AEN774"
></A
>8.1.4.5.2. Techniques</H4
><P
>&#13;Check the memory usage with <B
CLASS="command"
>free</B
> and <B
CLASS="command"
>top</B
>.
</P
><P
>&#13;You may also reduce the <B
CLASS="command"
>kernel size</B
> as much as possible by removing any feature which is not necessary for your needs and by modularizing the kernel as much as possible.
</P
><P
>&#13;Also you may shutdown every service or <B
CLASS="command"
>daemon</B
> which is not needed, e.g. <B
CLASS="command"
>lpd</B
>, <B
CLASS="command"
>mountd</B
>, <B
CLASS="command"
>nfsd</B
> and close some <B
CLASS="command"
>virtual consoles</B
>. Please see the <A
HREF="http://tldp.org/HOWTO/Small-Memory/index.html"
TARGET="_top"
>Small-Memory-mini-HOWTO</A
> for details.
</P
><P
>&#13;And of course use swap space, when possible.
</P
><P
>&#13;If possible you may use the resources of another machine, for instance with X,
VNC or even <B
CLASS="command"
>telnet</B
>. For more information on Virtual Network
Computing (VNC), see <A
HREF="http://www.realvnc.com/"
TARGET="_top"
>VNC</A
> .
</P
></DIV
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN792"
></A
>8.1.4.6. Low CPU Speed</H3
><P
>&#13;   You may want to overdrive the CPU speed but this can damage
   your hardware and I don't have experience with it. For some
   examples look at 
   <A
HREF="http://www.silverace.com/libretto/overclocking.html"
TARGET="_top"
>Adorable Toshiba Libretto - Overclocking</A
>. 
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN796"
></A
>8.1.4.7. Tiny Applications and Distributions</H3
><P
>&#13;A small collection yet, but I'm looking for more information.

<P
></P
><UL
><LI
><P
>&#13;
<A
HREF="http://www.boa.org/"
TARGET="_top"
>BOA</A
> - "Lightweight and High Performance WebServer.
<B
CLASS="command"
>boa</B
> is a single-tasking HTTP server. That means that
unlike traditional web servers, it does not fork for each incoming
connection, nor does it fork many copies of itself to handle multiple
connections. It internally multiplexes all of the ongoing HTTP connections,
and forks only for CGI programs (which must be separate processes).
Preliminary tests show boa is capable of handling several hundred hits per
second on a 100 MHz Pentium."
</P
></LI
><LI
><P
>&#13;Low Bandwidth X - Alan Cox in LINUX REDUX February 1998: " ... 
(<A
HREF="http://www.vigor.nu/dxpc/"
TARGET="_top"
>Differential X Protocol Compressor - Dxpc</A
>)
is the alternative most people prefer. These systems act as proxy X11
servers and compress datastreams by well over 50 percent for normal
requests, often reaching a reduction to 25 percent of the original
bandwidth usage. With dxpc, X windows applications are quite usable over a
28.8 modem link or across the Internet." 

</P
></LI
><LI
><P
>&#13;
<A
HREF="http://blackboxwm.sourceforge.net/"
TARGET="_top"
>Blackbox</A
>
- "This is a window manager for X. Ixt is similar in many
respects to such popular packages as Window Maker, Enlightenment, and
FVWM2. You might be interested in this package if you are tired of
window managers that are a heavy drain on your system resources, but you
still want an attractive and modern-looking interface."
</P
></LI
><LI
><P
>&#13;<A
HREF="http://www.gnu.org/software/screen/"
TARGET="_top"
><B
CLASS="command"
>screen</B
></A
>
- Tiny but powerful console manager.
John M. Fisk &#60;fiskjm at ctrvax.vanderbilt.edu&#62; in 
<A
HREF="http://www.linuxgazette.com/issue01to08/lg_issue7.html#screen"
TARGET="_top"
>LINUX
GAZETTE</A
>  : "It's a GUI, GUI,
GUI, GUI world! " - or so the major OS manufacturers would
have you belief. Truth is, that while this is increasingly the
case, there are times when the command line interface (CLI) is
still a very good choice for getting things done. It's fast,
generally efficient, and is a good choice on memory or CPU
constrained machines. And don't forget that there are still a lot
of very nifty things that can be done <B
CLASS="command"
>at the
console</B
>." "<B
CLASS="command"
>screen</B
> is a
full-screen window manager that multiplexes a physical terminal
between several processes, typically interactive shells. Each
virtual terminal provides the functions of the DEC VT100 terminal
and, in addition, several control functions from the ANSI X3.64
(ISO 6429) and ISO 2022 standards (e.g., insert/delete line and
support for multiple character sets). Real multiuser support,
split screen support, hardstatus emulation support, configurable
window seperator and hardstatus strings, permanent window
seperator, many new escapes, logfile timestamps and flush timeout,
optional builtin telnet, optional Braille support, support for
history compaction."
</P
></LI
><LI
><P
>&#13;<A
HREF="http://linux.maruhn.com/sec/tinyirc.html"
TARGET="_top"
>tinyirc</A
>
- "A tiny, stripped down IRC Client. Doesn't have
most of the more advance commands in the ircII family of IRC
Clients, nor does it have any color, but it works, and it's
tiny."
</P
></LI
><LI
><P
>&#13;
<A
HREF="http://tinyproxy.sourceforge.net/"
TARGET="_top"
>tinyproxy</A
>
- "Tinyproxy is a lightweight HTTP proxy
designed to do the job with a minimum of system resource use.
It's ideal for small networks where a larger HTTP proxy such
as squid might be overkill or a security risk. This simplicity
also makes tinyproxy an ideal candidate for customization - it
takes very little time to read and understand the tinyproxy
source, and thus you can start adding your own desired
features on short order."
</P
></LI
></UL
>

</P
><P
>&#13;Actually, with the progress of Linux in embedded systems,
countless lightweight applications now exist.
<A
HREF="http://free-electrons.com/training/devtools"
TARGET="_top"
>A presentation
from Free Electrons</A
> tries to list the most popular ones.
</P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="ecology-howto-lifecycle.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="ecology-howto-lifecyle-other-techniques.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Extending the Life Cycle of your Hardware</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="ecology-howto-lifecycle.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Other Techniques</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>