home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Edition 1: Linux / CD1.iso / doc / HOWTO / mini / Small-Memory < prev    next >
Text File  |  1998-10-14  |  6KB  |  161 lines

  1.  
  2.                          SMALL MEMORY MINI-HOWTO V0.1
  3.                                        
  4.                                BY: TODD BURGESS
  5.                                        
  6.                              TBURGESS@UOGUELPH.CA
  7.                                        
  8. Introduction
  9.  
  10.    The purpose of this mini HOWTO is to describe how to run Linux on a
  11.    system with a small amount of memory. Assuming buying more memory is
  12.    out of the question there are many things you can do to tighten up
  13.    memory usage in Linux.
  14.    
  15.    Many Linux distributions out of the box are quite bloated from a
  16.    memory perspective. They run more services and offer more features
  17.    then most of us will ever need. By removing many of these services you
  18.    can free up several megabytes of real memory.
  19.    
  20.    My own system is a 486DX2-66 with 12MB of physical memory and 12MB of
  21.    swap space. It has run Linux for the last 3 years quite happily and
  22.    hopefully it will run Linux for several more years. :)
  23.    
  24. Linux Kernel
  25.  
  26.    All the Linux kernels which come with distributions are quite bloated
  27.    and contain more features then any of us will ever need or use. If you
  28.    have not re-compiled your own kernel it is highly recommended that you
  29.    do so. How to re-compile a kernel is beyond the scope of this document
  30.    but many excellent Linux books and guides cover this subject in
  31.    intimate detail.
  32.    
  33.    If you do re-compile your kernel remember to put in no more features
  34.    then you need. For instance: how many of you include PLIP support in
  35.    your kernel? How many of you who include it actually use it? Smaller
  36.    kernels require less time to load, use less memory and use less CPU
  37.    cycles.
  38.    
  39.    Another thing is modules. I personally do not use them because I found
  40.    them to be a cumbersome. If you use them and like them then they can
  41.    help to relieve "kernel bloat."
  42.    
  43. Virtual Consoles
  44.  
  45.    VCs are a great way to free up memory. Most Linux distributions run
  46.    about 6 of them out of the box. On average running 6 VCs requires
  47.    about 4MB of memory. Removing a couple of them can free up a couple
  48.    MBs of memory.
  49.    
  50.    Most of users can get away running only 3 or 4 VCs. How many you
  51.    choose to remove is a matter personal preference. Just remember that
  52.    the fewer you run the more memory your applications will have to run.
  53.    
  54.    The file which outlines how many VCs get loaded is in the file
  55.    /etc/inittab . In order to remove VCs:
  56.    
  57.     1. Load /etc/inittab in a text editor
  58.     2. Look for a line which looks like (the key feature being a line
  59.        which starts with c1):
  60.        c1:12345:respawn:/sbin/getty tty1 38400 linux
  61.        Start at the highest number (ie c6) and comment it out by
  62.        inserting a '#' in the first row. Repeat this step as many times
  63.        as needed. Remember every line you comment out is one less VC
  64.        running.
  65.     3. Re-boot the system for your changes to take effect.
  66.        
  67. Daemons
  68.  
  69.    Many Linux distributions run many daemons most of us will never use.
  70.    Most of these daemons are loaded by scripts. Where these scripts are
  71.    and what they are called depends on your Linux distribution. Slackware
  72.    set-up scripts are buried in /etc/rc.d/rc.* .
  73.    
  74.    Before you proceed a knowledge of Unix shell script programming would
  75.    be a definite asset. If however you have no experience writing Unix
  76.    shell scripts what follows is probably the quickest introduction to
  77.    shell script programming ever written.
  78.    
  79.    Take the following shell script
  80.    
  81.  
  82. #!/bin/sh
  83. echo "hello world"
  84. #echo "good bye cruel world"
  85.  
  86.    
  87.    
  88.    The following will echo the string "hello world". Shell scripts must
  89.    contain the the line "#!/bin/sh" at the very top line. After that
  90.    every line is executed as if you had typed it at the keyboard (think
  91.    of shell scripts as nothing more then glorified keyboard macros).
  92.    
  93.    Lines which begin with a '#' are said to be commented out because they
  94.    do not get executed by the shell. Most start up scripts when they load
  95.    daemons look like:
  96.    
  97.  
  98. if somecondition
  99.   do something
  100. fi
  101.  
  102.    What you want to do is comment out every line starting with the if
  103.    statement and ending with the fi statement.
  104.    
  105.    If you want to find where a daemon is loaded what you want to do is
  106.    search the start up scripts for the name of the daemon. If I wanted to
  107.    find where inetd is loaded in Slackware I would do the following:
  108.    
  109.  
  110.      1  cd /etc/rc.d
  111.      2  grep -n inetd rc.*
  112.  
  113.   inetd
  114.   
  115.    inetd allows people to do things like telnet, ftp and send talk
  116.    requests to your machine. If you never use your system as a server or
  117.    need to access any of its services remotely you can remove inetd.
  118.    
  119.   lpd
  120.   
  121.    lpd is used to print files on your printer using the lpr command. If
  122.    you never print on your Linux box you can remove lpd. If however you
  123.    own a HP Deskjet printer and would like to print I highly recommend
  124.    the package I put together called dj-printcap which is available at:
  125.    ftp://sunsite.unc.edu/pub/Linux/system/Printing/dj-printcap.tar.gz
  126.    
  127.   nfsd and mountd
  128.   
  129.    These two daemons are used to run a NFS server. If you never use your
  130.    Linux system as a NFS server you can safely remove these two daemons.
  131.    
  132.   portmap
  133.   
  134.    The portmap daemon is used to handle RPC services. If you do not run a
  135.    NFS server or any other RPC programs you can remove portmap.
  136.    
  137.   sendmail
  138.   
  139.    sendmail is another daemon which requires a fair bit of memory. If you
  140.    never use your Linux box as a relay for sending e-mail or you never
  141.    receive mail on your Linux box you can probably remove sendmail. If
  142.    you do send e-mail from your Linux box most e-mail clients can be
  143.    set-up to send e-mail from another mail server.
  144.    
  145.   others
  146.   
  147.    There may be other daemons your system starts up which you do not
  148.    need. Remove what you feel you have to. Two daemons which you must run
  149.    are syslogd and klogd.
  150.    
  151. Conclusions
  152.  
  153.    The following illustrates the steps I took to tighten up my memory
  154.    usage on my Linux box. Hopefully I have provided you with some insight
  155.    into what you can do with your Linux box to conserve memory.
  156.    
  157.    Good luck and happy hacking!
  158.    Todd Burgess
  159.    tburgess@uoguelph.ca
  160.    http://eddie.cis.uoguelph.ca/~tburgess
  161.