
Small Memory mini-HOWTOTodd Burgess

    tburgess@uoguelph.ca

   2000-12-12
   Diario delle revisioni
   Revisione 0.1 2000-12-01 Corretto da: tb

   Descrive come eseguire Linux su un sistema con un piccolo quantitativo
   di memoria. Traduzione a cura di pctips
   <pctips@TOGLIMI.hardwaretips.com> e revisione a cura di Claudio
   Cattazzo <claudio@TOGLIMI.pluto.linux.it>.
     _________________________________________________________________

   Sommario
   1. Introduzione
   2. Il kernel Linux
   3. Le console virtuali
   4. Demoni

        4.1. inetd
        4.2. lpd
        4.3. nfsd e mountd
        4.4. portmap
        4.5. sendmail
        4.6. altri

   5. Conclusione

1. Introduzione

Assumendo che comprare ulteriore memoria sia fuori luogo, ci sono molte cose
che si possono fare per ottimizzare l'utilizzo della memoria sotto Linux.

Molte distribuzioni Linux sono sprecone da questo punto di vista. Eseguono
pi servizi e offrono pi funzionalit di quelle che serviranno mai alla
maggior parte di noi. Rimuovendo molti di questi servizi si potranno
liberare importanti megabyte di memoria reale.

Il mio sistema  un 486DX2-66 con 12MB di memoria fisica e 12 MB di spazio
swap. Ha fatto funzionare Linux piuttosto felicemente negli ultimi tre anni
e spero che lo far girare per molti altri anni ancora :)
     _________________________________________________________________

2. Il kernel Linux

Tutti i kernel Linux presenti nelle distribuzioni sono piuttosto abbondanti
e contengono pi funzionalit di quelle che chiunque tra noi richieder o
user mai. Se non si  ricompilato un proprio kernel si consiglia altamente
di farlo. Come ricompilare un kernel  fuori dallo scopo di questo
documento, ma molti libri e guide eccellenti per Linux coprono questo
argomento nei minimi dettagli.

Se si ricompila il kernel ci si ricordi di non inserirvi pi funzionalit di
quelle necessarie. Per esempio: quanti includono il supporto PLIP nel
kernel? Quanti lo usano realmente? Kernel pi piccoli richiedono meno tempo
per caricarsi, usano meno memoria e occupano meno cicli di CPU.

Un'altra cosa sono i moduli. Personalmente non li uso perch li trovo
ingombranti. Se si usano e si gradiscono possono aiutare ad alleggerire
"l'abbondanza dei kernel".
     _________________________________________________________________

3. Le console virtuali

Le console virtuali [NdT: o VC, dall'inglese Virtual Consoles] sono una
buona maniera per liberare memoria. La maggior parte delle distribuzioni
Linux ne usa all'incirca sei. In media eseguire 6 VC richiede circa 4MB di
memoria. Rimuovendone un paio  possibile liberare un paio di MB di memoria.
La maggior parte degli utenti usa solo 3 o 4 VC. Quante eliminarne  una
scelta strettamente personale. Ci si ricordi solo che meno se ne eseguono
pi memoria avranno le proprie applicazioni per lavorare.

Il file che stabilisce quante VC vengono caricate  /etc/inittab. Per
rimuovere delle VC:

    1. Aprire /etc/inittab con un editor di testo.
    2. Cercare una riga che somigli alla seguente (la caratteristica
       chiave  una riga che inizi per c1):
c1:12345:respawn:/sbin/getty tty1 38400 linux
       Iniziare dal numero pi grande (p.e. c6) e commentarlo inserendo
       un '#' nella prima colonna. Ripetere questo passaggio quante volte
       si vuole. Ci si ricordi che ogni riga commentata equivale ad una
       VC in meno.
    3. Riavviare il sistema affinch le modifiche abbiano effetto.
     _________________________________________________________________

4. Demoni

Molte distribuzioni Linux avviano demoni che la maggior parte di noi non
user mai. Molti di questi demoni sono caricati attraverso degli script.
Dove sono e come sono chiamati dipende dalla distribuzione Linux. Nella
configurazione di Slackware questi script sono contenuti in /etc/rc.d/rc.*.

Prima di iniziare, una conoscenza della programmazione degli script di shell
in Unix sarebbe una solida base. Comunque, se non si ha esperienza nello
scrivere script di shell per Unix, quella che segue probabilmente  la pi
breve introduzione alla programmazione di script di shell mai scritta.

Si osservi questo script di shell:
#!/bin/sh
echo "ciao mondo"
#echo "addio mondo crudele"

   Questo codice mostrer la stringa "ciao mondo". Gli script di shell
   devono contenere la riga
#!/bin/sh

   come prima riga. Dopo questo viene eseguita ogni riga come se fosse
   stata scritta alla tastiera (si pensi agli script di shell come a
   nulla pi che delle macro da tastiera).

   Le righe che iniziano con un '#' sono usate per commenti poich non
   sono eseguite dalla shell. La maggior parte degli script di avvio che
   caricano demoni  pi o meno cos:
if condizione
do operazione
fi

   Quello che si dovrebbe fare  commentare ogni riga inziante con
if

   e terminante con
fi

   Se si vuole vedere da dove viene caricato un demone, quello che si
   deve fare  cercare gli script di avvio con il suo nome. Se si vuole
   cercare dove si trova inetd in Slackware si deve eseguire ci che
   segue:
$ cd /edt/rc/d $grep -n inetd rd.*
     _________________________________________________________________

4.1. inetd

inetd permette di utilizzare strumenti come telnet, ftp ed inviare richieste
di tipo talk alla propria macchina. Se non si usa mai il proprio sistema
come server o non si deve accedere a nessuno di questi servizi remotamente,
si pu rimuovere inetd.
     _________________________________________________________________

4.2. lpd

lpd permette di stampare file con la propria stampante utilizzando il
comando lpr. Se non si stampa mai sulla propria macchina Linux si pu
rimuovere lpd. Comunque, se si ha una stampante HP Deskjet (TM) e si vuole
stampare, consiglio il pacchetto dj-printcap che ho pubblicato e che 
disponibile su

ftp://sunsite.unc.edu/pub/Linux/system/Printing/dj-printcap.tar.gz
     _________________________________________________________________

4.3. nfsd e mountd

Questi due demoni sono usati per eseguire un server NFS. Se non si usa il
proprio sistema Linux come server NFS si possono tranquillamente rimuovere.
     _________________________________________________________________

4.4. portmap

Il demone portmap  usato per gestire servizi RPC. Se non si esegue un
server NFS o nessun altro programma RPC si pu rimuovere portmap.
     _________________________________________________________________

4.5. sendmail

sendmail  un altro demone che richiede una discreta quantit di memoria. Se
non si usa mai la propria macchina Linux come server per mandare e-mail o
non se ne riceve, probabilmente si pu rimuovere sendmail. Se si mandano
e-mail dalla propria macchina Linux, la maggior parte dei client pu essere
configurata per inviare e-mail da un altro server di posta.
     _________________________________________________________________

4.6. altri

Ci possono essere molti altri demoni che il proprio sistema avvia di cui non
si ha bisogno. Si rimuova quello che si vuole. I due demoni che devono
essere eseguiti per forza sono syslogd e klogd.
     _________________________________________________________________

5. Conclusione

La precedente discussione mostra i passaggi che ho svolto per ottimizzare
l'utilizzo della memoria sulla mia macchina Linux. Ho illustrato alcune
tecniche che potete usare sulla vostra macchina Linux per conservare
memoria. Buona fortuna e "happy hacking"!
