184 lines
7.4 KiB
Plaintext
184 lines
7.4 KiB
Plaintext
|
Small Memory mini-HOWTO
|
|||
|
|
|||
|
Todd Burgess
|
|||
|
|
|||
|
<EFBFBD>tburgess@uoguelph.ca<63>
|
|||
|
|
|||
|
2000-12-12
|
|||
|
Revision History
|
|||
|
Revision 0.1 2000-12-01 Revised by: tb
|
|||
|
|
|||
|
|
|||
|
Describes how to run Linux on a system with a small amount of memory.
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
Table of Contents
|
|||
|
1. Introduction
|
|||
|
2. Linux Kernel
|
|||
|
3. Virtual Consoles
|
|||
|
4. Daemons
|
|||
|
4.1. inetd
|
|||
|
4.2. lpd
|
|||
|
4.3. nfsd and mountd
|
|||
|
4.4. portmap
|
|||
|
4.5. sendmail
|
|||
|
4.6. others
|
|||
|
|
|||
|
|
|||
|
5. Conclusions
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
1. Introduction
|
|||
|
|
|||
|
Assuming buying more memory is out of the question there are many things you
|
|||
|
can do to tighten up memory usage in Linux.
|
|||
|
|
|||
|
Many Linux distributions out of the box are quite bloated from a memory
|
|||
|
perspective. They run more services and offer more features than most of us
|
|||
|
will ever need. By removing many of these services you can free up several
|
|||
|
megabytes of real memory.
|
|||
|
|
|||
|
My own system is a 486DX2-66 with 12MB of physical memory and 12MB of swap
|
|||
|
space. It has run Linux for the last 3 years quite happily, and hopefully it
|
|||
|
will run Linux for several more years. :)
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2. Linux Kernel
|
|||
|
|
|||
|
All the Linux kernels which come with distributions are quite bloated and
|
|||
|
contain more features than any of us will ever need or use. If you have not
|
|||
|
re-compiled your own kernel, it is highly recommended that you do so. How to
|
|||
|
re-compile a kernel is beyond the scope of this document, but many excellent
|
|||
|
Linux books and guides cover this subject in intimate detail.
|
|||
|
|
|||
|
If you do re-compile your kernel, remember to put in no more features than
|
|||
|
you need. For instance: how many of you include PLIP support in your kernel?
|
|||
|
How many of you who include it actually use it? Smaller kernels require less
|
|||
|
time to load, use less memory, and use less CPU cycles.
|
|||
|
|
|||
|
Another thing is modules. I personally do not use them because I found them
|
|||
|
to be a cumbersome. If you use them and like them then they can help to
|
|||
|
relieve "kernel bloat."
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3. Virtual Consoles
|
|||
|
|
|||
|
VCs are a great way to free up memory. Most Linux distributions run about 6
|
|||
|
of them out of the box. On average running 6 VCs requires about 4MB of
|
|||
|
memory. Removing a couple of them can free up a couple MBs of memory. Most
|
|||
|
users can get away with running only 3 or 4 VCs. How many you choose to
|
|||
|
remove is a matter personal preference. Just remember that the fewer you run,
|
|||
|
the more memory your applications will have to run.
|
|||
|
|
|||
|
The file which outlines how many VCs get loaded is /etc/inittab. In order to
|
|||
|
remove VCs:
|
|||
|
|
|||
|
1. Load /etc/inittab in a text editor.
|
|||
|
|
|||
|
2. Look for a line which looks like the following line (the key feature
|
|||
|
being a line which starts with c1):
|
|||
|
c1:12345:respawn:/sbin/getty tty1 38400
|
|||
|
linux
|
|||
|
|
|||
|
Start at the highest number (i.e. c6) and comment it out by inserting a '
|
|||
|
#' in the first row. Repeat this step as many times as needed. Remember
|
|||
|
every line you comment out is one less VC running.
|
|||
|
|
|||
|
3. Re-boot the system for your changes to take effect.
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
4. Daemons
|
|||
|
|
|||
|
Many Linux distributions run daemons most of us will never use. Most of these
|
|||
|
daemons are loaded by scripts. Where these scripts are and what they are
|
|||
|
called depends on your Linux distribution. Slackware set-up scripts are
|
|||
|
buried in /etc/rc.d/rc.*.
|
|||
|
|
|||
|
Before you proceed, a knowledge of Unix shell script programming would be a
|
|||
|
definite asset. However, if you have no experience writing Unix shell
|
|||
|
scripts, what follows is probably the quickest introduction to shell script
|
|||
|
programming ever written.
|
|||
|
|
|||
|
Take the following shell script:
|
|||
|
#!/bin/sh echo "hello world"
|
|||
|
#echo "good bye cruel world"
|
|||
|
|
|||
|
The previous code will echo the string "hello world". Shell scripts must
|
|||
|
contain the the line
|
|||
|
"#!/bin/sh"
|
|||
|
at the very top line. After that every line is executed as if you had typed
|
|||
|
it at the keyboard (think of shell scripts as nothing more then glorified
|
|||
|
keyboard macros).
|
|||
|
|
|||
|
Lines which begin with a '#' are said to be commented out because they do not
|
|||
|
get executed by the shell. Most start-up scripts when they load daemons look
|
|||
|
like:
|
|||
|
if somecondition
|
|||
|
do something
|
|||
|
fi
|
|||
|
|
|||
|
What you want to do is comment out every line starting with the
|
|||
|
if
|
|||
|
statement and ending with the
|
|||
|
fi
|
|||
|
statement.
|
|||
|
|
|||
|
If you want to find where a daemon is loaded, search the start-up scripts for
|
|||
|
the name of the daemon. If I wanted to find where inetd is loaded in
|
|||
|
Slackware I would do the following:
|
|||
|
$ cd /edt/rc/d $grep -n inetd rd.*
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.1. inetd
|
|||
|
|
|||
|
inetd allows people to do things like telnet, ftp, and send talk requests to
|
|||
|
your machine. If you never use your system as a server or need to access any
|
|||
|
of its services remotely you can remove inetd.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.2. lpd
|
|||
|
|
|||
|
lpd is used to print files on your printer using the lpr command. If you
|
|||
|
never print on your Linux box you can remove lpd. If, however, you own a HP
|
|||
|
Deskjet ?? printer and would like to print, I highly recommend the package I
|
|||
|
put together called dj-printcap which is available at:
|
|||
|
|
|||
|
ftp://sunsite.unc.edu/pub/Linux/system/Printing/dj-printcap.tar.gz
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.3. nfsd and mountd
|
|||
|
|
|||
|
These two daemons are used to run an NFS server. If you never use your Linux
|
|||
|
system as an NFS server you can safely remove these two daemons.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.4. portmap
|
|||
|
|
|||
|
The portmap daemon is used to handle RPC services. If you do not run an NFS
|
|||
|
server or any other RPC programs you can remove portmap.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.5. sendmail
|
|||
|
|
|||
|
sendmail is another daemon which requires a fair bit of memory. If you never
|
|||
|
use your Linux box as a relay for sending e-mail or you never receive mail on
|
|||
|
your Linux box, you can probably remove sendmail. If you do send e-mail from
|
|||
|
your Linux box most e-mail clients can be set-up to send e-mail from another
|
|||
|
mail server.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.6. others
|
|||
|
|
|||
|
There may be other daemons your system starts up which you do not need.
|
|||
|
Remove what you feel you have to. Two daemons which you must run are syslogd
|
|||
|
and klogd.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
5. Conclusions
|
|||
|
|
|||
|
The previous discussion illustrates the steps I took to tighten up my memory
|
|||
|
usage on my Linux box. Hopefully I have provided you with some insight into
|
|||
|
what you can do with your Linux box to conserve memory. Good luck and happy
|
|||
|
hacking!
|