Comment reduire la consommation memoire sous Linux.
 TToodddd BBuurrggeessss ((ttbbuurrggeessss@@uuoogguueellpphh..ccaa))
 _a_d_a_p_t_a_t_i_o_n _f_r_a_n_c_a_i_s_e _: David Cotton ([email protected])
 v0.1, derniere mise a jour le 21 mars 1998.

 L'objet de ce mini HowTo est de decrire comment utiliser Linux avec un
 systeme disposant de peu de memoire. En  considerant  que  l'achat  de
 plus  de memoire est hors de question, il existe de nombreux moyens de
 reduire la consommation de memoire sous Linux.  De nombreuses  distri-
 butions  Linux sont, telles qu'elles sont livrees, sont boulimiques du
 point de vue de la memoire. Elles lancent plus de services et  offrent
 plus  de  fonctionnalites  que  ce  dont  la plupart d'entre nous aura
 jamais besoin. En supprimant beaucoup  de  ces  services  vous  pouvez
 liberer  plusieurs  megas de veritable memoire. Mon propre systeme est
 un 486DX2-66  avec  12Mo  de  memoire  physique  et  12Mo  de  fichier
 d'echange.  Il  fait  tourner  Linux  avec  bonheur  depuis  les trois
 dernieres annees et, on peut l'esperer, il continuera a faire  tourner
 Linux pendant encore quelques annees. :)

 11..  LLee nnooyyaauu ddee LLiinnuuxx..

 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 recompile votre propre noyau, il
 est fortement recommande 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 details.

 Si vous recompilez votre noyau,  pensez  a  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
 requierent moins de temps pour se charger, utilisent moins de  memoire
 et de cycles CPU.

 Autre possibilite : 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 a soulager "l'embonpoint du noyau".

 22..  LLeess ccoonnssoolleess vviirrttuueelllleess

 Les  consoles  virtuelles  sont  un merveilleux moyen de liberer de la
 memoire. La majorite  des  distributions  de  Linux  lance  environ  6
 consoles  par defaut. En moyenne l'execution de 6 consoles necessite a
 peu pres 4Mo de  memoire.  En  retirer  deux  ou  trois  peut  liberer
 quelques megas de memoire.

 La  plupart des utilisateurs peuvent demarrer en ne lancant que 3 ou 4
 consoles.  Combien vous choisirez d'en retirer  est  une  question  de
 preferences  personnelles.  Souvenez vous simplement que moins vous en
 executerez, plus vos applications auront de la memoire pour tourner.

 Le fichier qui indique combien de  consoles  virtuelles  doivent  etre
 lancees est /etc/inittab. Pour desactiver des consoles :

 1. Chargez /etc/inittab dans un editeur de texte.

 2. Recherchez  une  ligne  ressemblant a (le point cle etant une ligne
    commencant par c1) :

    c1:12345:respawn:/sbin/getty tty1 38400 linux

    Commencez par le nombre le plus eleve  (ici  c6)  et  commentez  la
    ligne en inserant un '#' a la premiere colonne. Repetez cette etape
    autant de fois que necessaire. 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.

 33..  LLeess ddeemmoonnss

 Beaucoup  de distributions de Linux lancent de nombreux demons dont la
 majorite d'entre nous n'aura jamais l'usage. La plupart de ces  demons
 se  charge  par des scripts. La localisation de ces scripts, ainsi que
 leur nom dependent de votre distribution  de  Linux.  Les  scripts  de
 demarrage de la Slackware sont regroupes 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  experience  dans  l'ecriture de scripts pour Unix, ce qui suit
 est probablement la plus courte introduction  a  la  programmation  de
 scripts jamais ecrite.

 Prenez le script suivant :

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

 Ce  script  va  afficher  la  chaine  "salut tout le monde". Les shell
 scripts doivent contenir la ligne "#!/bin/sh" en toute premiere ligne.
 Apres  cela  chaque ligne sera executee comme si vous l'aviez tapee au
 clavier (considerez les scripts comme rien d'autre que des  macros  du
 clavier ameliorees).

 Les  lignes  qui commencent par un '#' sont dites commentees car elles
 ne sont pas executees par  l'interpreteur  de  commande.  Beaucoup  de
 scripts de demarrage, quand ils chargent des demons, ressemblent a :

      if conditionquelconque
        do quelquechose
      fi

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

 Vouloir localiser ou un demon est charge c'est rechercher  le  nom  du
 demon  dans  les  scripts de demarrage. Si je voulais trouver ou inetd
 est charge dans la Slackware je ferais :

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

 33..11..  iinneettdd

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

 33..22..  llppdd

 lpd  est  utilise  pour  imprimer des fichiers sur votre imprimante en
 employant la commande lpr. Si vous n'imprimez jamais a partir de votre
 station  Linux vous pouvez retirer lpd. Si toutefois vous possedez 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>

 33..33..  nnffssdd eett mmoouunnttdd

 Ces deux demons sont utilises pour lancer  un  serveur  NFS.  Si  vous
 n'utilisez  jamais  votre  systeme Linux comme serveur NFS vous pouvez
 les retirer en toute securite.

 33..44..  ppoorrttmmaapp

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

 33..55..  sseennddmmaaiill

 sendmail  est  un  autre demon necessitant pas mal de memoire. Si vous
 n'utilisez jamais votre station Linux pour relayer l'envoi de courrier
 electronique  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 etre configures pour
 poster le courrier a partir d'un autre serveur.

 33..66..  lleess aauuttrreess

 Il peut y avoir d'autres demons lances par  votre  systeme  dont  vous
 n'avez  pas  besoin.  Retirez  ce  que vous jugez inutile. Deux demons
 doivent imperativement etre lances : syslogd et klogd.

 44..  CCoonncclluussiioonn

 Ce qui precede illustre le chemin que j'ai suivi  pour  economiser  la
 memoire sur ma station Linux. J'espere vous avoir fourni quelques cles
 pour vous permettre de conserver toute la  memoire  de  votre  station
 Linux.

 Bonne chance et bon bidouillage !

 Todd Burgess

 <[email protected]>

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