
              Comment rduire la consommation mmoire sous Linux.

_Todd Burgess (tburgess@uoguelph.ca)_
_adaptation franaise :_ David Cotton (dcotton@nat.fr)

   v0.1, dernire mise  jour le 21 mars 1998.
     _________________________________________________________________

   _L'objet de ce mini HowTo est de dcrire comment utiliser Linux avec
   un systme disposant de peu de mmoire. En considrant que l'achat de
   plus de mmoire est hors de question, il existe de nombreux moyens de
   rduire la consommation de mmoire sous Linux. De nombreuses
   distributions Linux sont, telles qu'elles sont livres, sont
   boulimiques du point de vue de la mmoire. Elles lancent plus de
   services et offrent plus de fonctionnalits que ce dont la plupart
   d'entre nous aura jamais besoin. En supprimant beaucoup de ces
   services vous pouvez librer plusieurs mgas de vritable mmoire. Mon
   propre systme est un 486DX2-66 avec 12Mo de mmoire physique et 12Mo
   de fichier d'change. Il fait tourner Linux avec bonheur depuis les
   trois dernires annes et, on peut l'esprer, il continuera  faire
   tourner Linux pendant encore quelques annes. :)_
     _________________________________________________________________

1. Le noyau de Linux.

   Tous les noyaux Linux fournis avec les distributions sont assez
   bouffis et contiennent plus de fonctions que ce qu'aucun d'entre nous
   utilisera jamais. Si vous n'avez pas recompil votre propre noyau, il
   est fortement recommand de le faire. Comment recompiler un noyau est
   en dehors du domaine de ce document mais d'excellents livres et guides
   sur Linux couvrent ce sujet en dtails.

   Si vous recompilez votre noyau, pensez  ne pas inclure plus de
   fonctions que ce dont vous avez besoin. Par exemple : combien d'entre
   vous ont inclus le support de PLIP dans leur noyau ? Combien de ceux
   qui l'ont inclus l'utilisent effectivement ? Les noyaux plus petits
   requirent moins de temps pour se charger, utilisent moins de mmoire
   et de cycles CPU.

   Autre possibilit : les modules. Je ne les utilise pas personnellement
   parce que je les trouve encombrants. Si vous les utilisez et les aimez
   alors ils peuvent aider  soulager "l'embonpoint du noyau".

2. Les consoles virtuelles

   Les consoles virtuelles sont un merveilleux moyen de librer de la
   mmoire. La majorit des distributions de Linux lance environ 6
   consoles par dfaut. En moyenne l'excution de 6 consoles ncessite 
   peu prs 4Mo de mmoire. En retirer deux ou trois peut librer
   quelques mgas de mmoire.

   La plupart des utilisateurs peuvent dmarrer en ne lanant que 3 ou 4
   consoles. Combien vous choisirez d'en retirer est une question de
   prfrences personnelles. Souvenez vous simplement que moins vous en
   excuterez, plus vos applications auront de la mmoire pour tourner.

   Le fichier qui indique combien de consoles virtuelles doivent tre
   lances est /etc/inittab. Pour dsactiver des consoles :

    1. Chargez /etc/inittab dans un diteur de texte.
    2. Recherchez une ligne ressemblant  (le point cl tant une ligne
       commenant par c1) : c1:12345:respawn:/sbin/getty tty1 38400 linux
       Commencez par le nombre le plus lev (ici c6) et commentez la
       ligne en insrant un '#'  la premire colonne. Rptez cette
       tape autant de fois que ncessaire. Souvenez vous que chaque
       ligne que vous mettez en commentaire est une console virtuelle de
       moins.
    3. Relancez votre machine pour que les changements prennent effet.

3. Les dmons

   Beaucoup de distributions de Linux lancent de nombreux dmons dont la
   majorit d'entre nous n'aura jamais l'usage. La plupart de ces dmons
   se charge par des scripts. La localisation de ces scripts, ainsi que
   leur nom dpendent de votre distribution de Linux. Les scripts de
   dmarrage de la Slackware sont regroups dans /etc/rc.d/rc.* .

   Avant de poursuivre, une connaissance de la programmation de
   shell-scripts Unix serait un avantage certain. Si toutefois vous
   n'avez aucune exprience dans l'criture de scripts pour Unix, ce qui
   suit est probablement la plus courte introduction  la programmation
   de scripts jamais crite.

   Prenez le script suivant :

#!/bin/sh
echo "salut tout le monde"
#echo "adieu monde cruel"

   Ce script va afficher la chane "salut tout le monde". Les shell
   scripts doivent contenir la ligne "#!/bin/sh" en toute premire ligne.
   Aprs cela chaque ligne sera excute comme si vous l'aviez tape au
   clavier (considrez les scripts comme rien d'autre que des macros du
   clavier amliores).

   Les lignes qui commencent par un '#' sont dites commentes car elles
   ne sont pas excutes par l'interprteur de commande. Beaucoup de
   scripts de dmarrage, quand ils chargent des dmons, ressemblent  :

if conditionquelconque
  do quelquechose
fi

   Ce que vous voulez faire, c'est mettre en commentaire toutes les
   lignes allant de la marque if  la marque fi.

   Vouloir localiser o un dmon est charg c'est rechercher le nom du
   dmon dans les scripts de dmarrage. Si je voulais trouver o inetd
   est charg dans la Slackware je ferais :

cd /etc/rc.d
grep -n inetd rc.*

3.1 inetd

   inetd permet de faire des choses telles que telnet, ftp et envoyer des
   requtes de type talk  votre machine. Si vous n'utilisez pas votre
   systme en tant que serveur et que vous n'avez pas besoin d'accder 
   l'un de ces services  distance vous pouvez supprimer inetd.

3.2 lpd

   lpd est utilis pour imprimer des fichiers sur votre imprimante en
   employant la commande lpr. Si vous n'imprimez jamais  partir de votre
   station Linux vous pouvez retirer lpd. Si toutefois vous possdez une
   imprimante HP Deskjet et aimeriez imprimer je recommande fortement
   l'ensemble dj-printcap disponible sur le site
   ftp://sunsite.unc.edu/pub/Linux/system/Printing/dj-printcap.tar.gz

3.3 nfsd et mountd

   Ces deux dmons sont utiliss pour lancer un serveur NFS. Si vous
   n'utilisez jamais votre systme Linux comme serveur NFS vous pouvez
   les retirer en toute scurit.

3.4 portmap

   Le dmon portmap permet de grer les services RPC (NdT : Remote
   Procedure Call = Excution de fonctions sur une autre machine). Si
   vous ne lancez pas de serveur NFS ou tout autre programme RPC, vous
   pouvez enlever portmap.

3.5 sendmail

   sendmail est un autre dmon ncessitant pas mal de mmoire. Si vous
   n'utilisez jamais votre station Linux pour relayer l'envoi de courrier
   lectronique et que vous ne recevez jamais de courrier vous pouvez
   probablement le retirer. Si vous envoyez du courrier de votre station
   Linux, la plupart des logiciels clients peuvent tre configurs pour
   poster le courrier  partir d'un autre serveur.

3.6 les autres

   Il peut y avoir d'autres dmons lancs par votre systme dont vous
   n'avez pas besoin. Retirez ce que vous jugez inutile. Deux dmons
   doivent imprativement tre lancs : syslogd et klogd.

4. Conclusion

   Ce qui prcde illustre le chemin que j'ai suivi pour conomiser la
   mmoire sur ma station Linux. J'espre vous avoir fourni quelques cls
   pour vous permettre de conserver toute la mmoire de votre station
   Linux.

   Bonne chance et bon bidouillage !

   Todd Burgess

   tburgess@uoguelph.ca

   http://eddie.cis.uoguelph.ca/~tburgess
