Avanti Indietro Indice

19. Appendice B - Confrontarsi con risorse limitate ovvere mettere a puntoil sistema

19.1 HOWTO correlati

  1. LBX-HOWTO
  2. Small-Memory-HOWTO

19.2 Introduzione

Come accennato nell'introduzione, i laptop hanno talvolta meno risorse rispetto ai desktop. Ho quindi scritto questo capitolo, su come confrontarsi con limitazioni di spazio, memoria, velocità della CPU e durata delle batterie.

19.3 Spazio limitato

Introduzione

Ci sono tipi differenti di tecniche per recuperare spazio disco, come la condivisione di spazio, il recupero di spazio inutilizzato o ridondante, affinamento e compressione del filesystem. Nota: alcune di queste tecniche usano la memoria al posto dello spazio. Come si vedrà, sono necessari molti piccoli passi per liberare un po' di spazio.

Tecniche

  1. Strip: Per quanto oggi molte distribuzioni siano fornite con binari "strippati", è comunque utile verificarlo. Per dettagli si veda man strip. Per rintracciare tutti i file non strippati si può usare il comando file o, più convenientemente, l'utilità findstrip. Attenzione: non usate strip sulle librerie, talvolta si eliminano i simboli sbagliati a causa di cattive tecniche di programmazione. Oppure si usi l'opzione --strip-unneeded.
  2. Perforazione: zum(1) legge una lista di file sullo stdin e tenta di perforare questi file. Perforazione significa che serie di byte vuoti sono rimpiazzati da lseek, dando così al file system la possibilità di non allocare spazio disco reale per tali byte. Esempio: find . -type f | xargs zum
  3. Rimozione di file strani e di duplicati: verificate la presenza nel sistema di file core, file di ripristino di emacs <#FILE#>, file di ripristino di vi <FILE>.swp, file di ripristino RPM <FILE>.rpmorig e file di ripristino delle patch. Per scovare i duplicati, si può provare finddup. Scegliete un sistema per dare un nome ai vostri backup, file temporanei e di test, per es. con una sigla alla fine.
  4. Pulizia dei file temporanei: per es. /tmp, esiste persino l'utilità tmpwatch.
  5. Accorciamento dei file di log: solitamente i file in /var/log.
  6. Rimozione di file: Si rimuovano i file non "necessari" in tutte le circostanze, come le pagine man, la documentazione /usr/doc e i sorgenti, per es. /usr/src .
  7. Librerie non necessarie: È possibile usare il pacchetto binstats per scovare le librerie inutilizzate (grazie a Tom Ed White).
  8. Filesystem: Scegliete un filesystem che utilizzi con parsimonia lo spazio disco, per es. rsfs. Mettete a punto il filesystem, per es. con tune2fs. Scegliete un'appropriata dimensione delle partizioni e dei blocchi.
  9. Ridurre le dimensioni del kernel: usando solo le funzionalità del kernel necessarie e/o creando un'immagine bzImage compressa del kernel.
  10. Compressione: Questo non l'ho ancora verificato, ma per quanto ne sappia è possibile comprimere il filesystem con gzip e decomprimerlo al volo. In alternativa, è possibile scegliere di comprimere solo determinati file. I file compressi possono essere perfino eseguiti con zexec
  11. Filesystem compressi:

    - Per i filesystem e2fs, è disponibile la versione compressa e2compr, si veda http://debs.fuller.edu/e2compr/.

    - DMSDOS, che permette alla vostra macchina di accedere ai drive compressi di Windows95 (drivespace, doublestacker). L'autore stesso del programma lo sconsiglia quando la compatibilità con DOS/Windows95 non sia necessaria, quando desiderate cioé comprimere solo i dati Linux. Si veda http://fb9nt-ln.uni-duisburg.de/mitarbeiter/gockel/software/dmsdos/.

  12. Condivisione di partizioni: È possibile condividere lo spazio di swap (si veda lo Swap-Space-HOWTO) o le partizioni di dati tra SO differenti (si veda mount). Per il montaggio di dispositivi compressi sotto MS-DOS Windows95 (doublespace, drivespace) si può usare dmsdos http://metalab.unc.edu/pub/Linux/system/filesystems/dosfs/.
  13. Librerie: Scegliete un'altra libreria (meno recente), per esempio libc5, che sembra più ridotta rispetto a libc6, alias glibc2.
  14. Kernel: Se le vostre esigenze si adattano a una versione del kernel meno recente, è possibile risparmiare spazio.
  15. GUI: Evitate il più possibile le interfacce utente grafiche (GUI).
  16. Distribuzioni ridotte: Sono disponibili alcune distribuzioni con dimensioni comprese fra un floppy da 3.5" e 10MB di spazio su disco che si adattano anche a memorie limitate. Si veda l'appendice A e più sotto.
  17. Dispositivi esterni di archiviazione (hard disk, drive ZIP, NFS, SAMBA): Dato che molti notebook possono avere limitate possibilità di espansione, l'uso della porta parallela può costituire un'opzione attraente. Sono disponibili dischi rigidi e dispositivi ZIP esterni, solitamente collegabili anche via PCMCIA. Un altro sistema consiste nell'utilizzo delle risorse di un'altra macchina tramite NFS o SAMBA, ecc.

19.4 Velocità del disco rigido

Si usi l'utilità hdparm per incrementare le prestazioni del disco rigido. Per quanto abbia visto dei dischi di laptop abilitati per lo striping, non vedo alcuna ragione per farlo, perché secondo la mia opinione lo striping con RAID0 necessita almeno di due dischi differenti per incrementare le prestazioni.

Si veda UNIX and LINUX Computing Journal: Tunable Filesystem Parameters in /proc su come incrementare, ridurre e riconfigurare i parametri del filesystem all'interno di /proc.

19.5 Memoria limitata

HOWTO correlati

  1. Small-Memory-mini-HOWTO di Todd Burgess <tburgess@uoguelph.ca > http://eddie.cis.uoguelph.ca/~tburgess
  2. Modules-mini-HOWTO
  3. Kerneld-mini-HOWTO

Tecniche

Verificate l'utilizzo della memoria con free e top.

Progetto Mergemem. Molti programmi contengono aree di memoria con lo stesso contenuto che non vengono rilevate dal sistema operativo. Tipicamente, queste aree contengono dati che sono stati generati all'avvio e che rimangono immutati per lunghi periodi. Con mergemem tali aree vengono rilevate e condivise. La condivisione è attuata a livello del sistema operativo e resta invisibile ai programmi a livello utente. mergemem è particolarmente utile se si lanciano svariate istanze di interpreti ed emulatori (come Java o Prolog) che mantengono il proprio codice in aree di dati private; ma anche altri programmi possono trarne un, seppure minore, vantaggio.

Si può anche, fino a un certo punto, ridurre le dimensioni del kernel rimuovendo tutte le funzionalità non necessarie per le proprie esigenze e modularizzando il kernel fin dove possibile.

Si può anche arrestare ogni servizio o demone non necessario, per es. lpd, mountd, nfsd e chiudere alcune console virtuali. Fate riferimento allo Small-Memory-mini-HOWTO per dettagli.

E ovviamente usate lo spazio di swap, quando possibile.

Se possibile, usate le risorse di un'altra macchina, per esempio con X, VNC o perfino telnet. Per maggiori informazioni sul Virtual Network Computing (VNC), si veda http://http://www.uk.research.att.com/vnc/.

19.6 Bassa velocità della CPU

Potreste volere incrementare la velocità della CPU; non ne ho esperienza ma sappiate che ciò potrebbe danneggiare l'hardware. Per alcuni esempi date un'occhiata all'Adorable Toshiba Libretto - Overclocking http://www.cerfnet.com/~adorable/libretto.html.

19.7 Tecniche di risparmio energetico

  1. Se non avete bisogno del supporto agli infrarossi, disabilitatelo nel BIOS o fermate il driver del dispositivo IrDA. Ci sono anche alcune funzionalità IrDA del kernel che sono utili per risparmiare energia.
  2. I servizi PCMCIA consumano parecchia energia, per cui arrestateli se non se ne avete bisogno.
  3. Non sono sicuro fino a che punto la retroilluminazione consumi energia. ATTENZIONE: Per quanto ne sappia, questo dispositivo può reggere solo un limitato numero di cicli di funzionamento, per cui evitate di usare il salvaschermo.
  4. Per alcuni esempi di costruzione di batterie con autonomia prolungata fino a 8 ore, si veda l'Adorable Toshiba Libretto http://www.cerfnet.com/~adorable/libretto.html.
  5. Per informazioni sull'APM date un'occhiata al capitolo sull'APM, sopra.
  6. Un hack per rclock . Booker C. Bense ha creato un hack per il programma rclock in modo da includere un semplice indicatore del livello delle batterie sul quadrante dell'orologio.
  7. xbatstat controlla lo stato del livello delle batterie sotto Linux e X.
  8. L'opzione "noatime" per il montaggio dei filesystem ordina al kernel di non aggiornare le informazioni sul tempo di accesso del file. Tali informazioni, per quanto talvolta utili, non sono usate dalla maggioranza delle persone (chi sa che ls -lu restituisce il tempo di accesso?). Perciò, potete disabilitarlo senza rischi, impedendo quindi l'accesso al disco ogni volta che si fa il cat di un file. Segue un esempio di /etc/fstab con questa opzione di risparmio energetico:
    /dev/hda7 /var ext2 defaults,noatime 0 2
    
  9. hdparm hdparm è un'utilità Linux per dischi IDE che permette di impostare parametri quali il periodo di tempo passato il quale il disco si debba spegnere. Funziona anche per certe funzionalità SCSI.
  10. Mobile Update Daemon Costituisce un rimpiazzo di pronto impiego per il demone standard update; mobile-update minimizza il numero di ripartenze del disco e ne riduce gli il tempo di attività. Svuota i buffer solo se è presente un'altra attività del disco. Per essere sicuri della correttezza del file system invocate manualmente sync, altrimenti dei file potrebbero andare perduti in caso di mancanza di energia. mobile-update non usa APM, per cui funziona anche su sistemi più datati.
  11. noflushd: noflushd vigila sull'attività del disco e ferma quei dischi che risultino inattivi per più di <timeout> secondi. Richiede un kernel >=2.2.11 . Utile in combinazione con hdparm e mount con l'opzione noatime per ridurre l'attività del disco.
  12. Utilità Toshiba per Linux , un insieme di utilità Linux per controllare la ventole, le password dell'amministratore e i tasti attivi dei notebook Pentium di Toshiba. Esiste anche il pacchetto Klibreta, per KDE.
  13. Sulla pagina di Kenneth E. Harker viene raccomandato LCDproc LCDProc. "LCDproc è un piccolo software che consente alla propria Linux box di visualizzare dal vivo informazioni sul sistema su un display LCD retroilluminato a 20x4 linee. Questo programma visualizza, tra le altre cose, lo stato della batteria sui notebook." Ho provato questo pacchetto e ho scoperto che si connette solo ai display LCD 20x4 esterni Matrix-Orbital http://www.matrix-orbital.com/, che sono display LCD da collegare alla porta seriale. Non riesco ancora a vederne l'utilità per un laptop.
  14. Diald: Dial Daemon . Il demone Diald permette di avere connessioni a Internet a richiesta, usando i protocolli SLIP o PPP. Diald può chiamare automaticamente un host remoto quando necessario o chiudere le connessioni dialup inattive.
  15. KDE http://www.kde.org fornisce KAPM, Kbatmon e Kcmlaptop. Scritto da Paul Campbell, kcmlaptop è un insieme di pannelli di controllo per KDE che implementa funzioni di supporto ai computer laptop; include un monitor dello stato della batteria per i laptop - in breve una piccola icona nella barra di stato di KDE che mostra l'autonomia residua della batteria. Avverte inoltre se la batteria si stia esaurendo e permette di configurare le opzioni di risparmio energetico. Pacchetti simili si possono trovare presso il progetto GNOME http://www.gnome.org/. Cercate nelle liste si software su entrambi i siti.
  16. Consultate il Battery Powered Linux Mini-HOWTO di Hanno Mueller, hanno@lava.de http://www.lava.de/~hanno/ per maggiori informazioni.

19.8 Kernel

HOWTO correlati

Molte funzionalità del kernel sono legate ai laptop. Per esempio APM, IrDA, PCMCIA e alcune opzioni per determinati laptop, per es. i ThinkPad IBM. In alcune distribuzioni non sono configurate e il kernel è solitamente più voluminoso del necessario. Personalizzare il kernel sembra quindi una buona idea. Per quanto questo compito sembri difficoltoso per i principianti, è tuttavia caldamente raccomandato. Dato che ciò comporta operazioni rischiose, è necessario comunque essere cauti. Ciononostante, se riuscirete ad installare correttamente un kernel ottimizzato vi meriterete la spilletta di amministratore Linux di livello intermedio. - Dato che questo argomento viene già trattato in altri documenti, non ne parlerò qui.

19.9 Applicazioni e distribuzioni ridotte

Una raccolta ancora limitata, ma sto cercando ulteriori informazioni

  1. BOA - "Server web leggero e ad alte prestazioni. boa è un server HTTP single-task. Ciò significa che, diversamente dai web server tradizionali, non effettua un fork per ogni connessione in arrivo e neppure esegue il fork di copie multiple di se stesso per gestire connessioni multiple. Al suo interno esso effettua il multiplexing di tutte le connessioni HTTP in corso, facendo il fork solo dei programmi CGI (che devono essere processi separati). Test preliminari mostrano come boa sia capace di gestire svariate centinaia di contatti al secondo su un Pentium a 100 MHz."
  2. MGR - un sistema grafico a finestre, che usa molte meno risorse rispetto a X.
  3. X a limitata ampiezza di banda:

    Alan Cox nel LINUX REDUX del febbraio 1998 " .. ce ne sono due che gestiscono le normali applicazioni molto elegantemente. LBX (Low Bandwidth X) è l'applicazione ufficiale dell'X Consortium (adesso OpenGroup www.opengroup.org). Dxpc http://ccwf.cc.utexas.edu/~zvonler/dxpc è l'alternativa preferita da molte persone. Questi sistemi agiscono come server proxy X11 e comprimono i flussi di dati ben oltre il 50 percento per le richieste normali, raggiungendo spesso una riduzione fino al 25 percento dell'originale utilizzo dell'ampiezza di banda. Con dxpc, le applicazioni X windows sono ragionevolmente utilizzabili attraverso un collegamento con modem 28.8 oppure Internet."

  4. blackbox - "È un gestore di finestre per X, sotto molti aspetti simile a pacchetti popolari come Window Maker, Enlightenment e FVWM2. Potrebbe interessarvi nel caso foste stufi di gestori di finestre che costituiscano un pesante salasso per le risorse del sistema, ma desideraste comunque un'interfaccia attraente e di aspetto moderno."
  5. xfce - xfce è un ambiente desktop leggero e stabile per vari sistemi UNIX.
  6. linux-lite - distribuzione basata su un kernel 1.x.x per sistemi con soli 2MB di memoria e 10MB di disco rigido. Per l'URL, si veda sopra.
  7. smallLinux - http://smalllinux.netpedia.net/. Micro-distribuzione Linux su tre dischi con varie utilità, basata sul kernel 1.2.11. Il disco di root è nel formato ext2 e dispone di fdisk e mkfs.ext2 per consentire l'installazione sul disco rigido. Utile per l'avvio su vecchie macchine con meno di 4MB di RAM.
  8. cLIeNUX - distribuzione Linux orientata all'uso client.
  9. minix - non è Linux ma uno UNIX utile per sistemi molto ridotti, come quelli aventi CPU 286 e 640K di RAM http://www.cs.vu.nl/~ast/minix.html . Esiste perfino il supporto X denominato mini-x, di David I. Bell ftp://ftp.linux.org.uk/pub/linux/alan/.
  10. screen - gestore di console piccolo ma potente. John M. Fisk <fiskjm@ctrvax.vanderbilt.edu> nella LINUX GAZETTE del 1 luglio 1996 :"It's a GUI, GUI, GUI, GUI world! " -- o almeno, questo è quello che i maggiori produttori di SO vorrebbero farci credere. Sebbene sia questa la tendenza in atto, la verità è che ci sono occasioni in cui l'interfaccia a riga di comando (CLI) rimane un'ottima scelta per portare a compimento certe cose. È veloce, generalmente efficiente e rappresenta una buona scelta su macchine con CPU o memoria limitate. E non scordatevi che ci sono ancora un sacco di cose ingegnose che si possono fare alla console."
  11. tinyirc - "Un client IRC piccolo e ridotto al minimo. Non dispone della maggior parte dei comandi più avanzati della famiglia ircII dei client IRC; non è neppure colorato, ma funziona; ed è piccolo."

19.10 Aggiornamento dell'hardware

Potreste prendere in considerazione l'opzione di aggiornare l'hardware stesso; per quanto ciò possa comportare alcune controindicazioni, fate riferimento al capitolo Aprire il case di un laptop, sopra. Per una valutazione sulle possibilità di riuscita, potete dare un'occhiata a http://www.upgrade.de, pagina disponibile anche in francese ed in inglese.


Avanti Indietro Indice