Questo microhowto e' principalmente inteso come breve guida per quei nuovi utenti che si trovano ad avere, sulla stessa macchina, una versione di un'altro sistema operativo (tipicamente windows) e notano un'efficienza notevolmente minore della loro installazione di linux rispetto alla prima. Ribadisco che tutti i consigli seguenti vanno applicati solo se e' il caso, e se si e' capita la documentazione a corredo dei pacchetti menzionati. Fate solo quello che sapete di poter fare, con calma e metodo, e solo se potete accettarne i rischi.
Innanzi tutto c'e' una cosa da chiarire a priori: la performance velocistica non e' mai stata un obiettivo primario degli originali progettisti di unix, che quindi vede privilegiati altri aspetti (es. razionalita' complessiva, minimalita', stabilita', flessibilita', estensibilita', facilita' di sviluppo); questo non solo e' vero per il kernel e per le utility di base, ma anche per X11, che e' un windowing system di rete, estremamente duttile, e "fattorizzato" rispetto al resto del sistema (non a caso esistono implementazioni di X anche per sistemi operativi che con unix hanno poco a che vedere); insomma X e' molto piu' ambizioso, riguardo la flessibilita' e alla "espressivita'", rispetto alla maggioranza dei windowing systems alternativi; questo si paga con prestazioni in genere minori (nelle applicazioni cosiddette "multimediali" la cosa varra' sopratutto finche' non sara' disponibile DRI). Il fatto che linux risulti in media cosi' efficiente rispetto ad altri sistemi operativi; e' dovuto solo ed unicamente alla preparazione ed alla professionalita' di chi contribuisce. In ogni caso rimane vero che linux sia ottimizzato per l'uso "medio" e non di nicchia, qualunque sia la nicchia a cui vi stiate riferendo.
Il primo consiglio e' quello di affidarsi, in prima battuta, alla
buona vecchia regola che privilegia la minimalita': togliere tutto
cio' che non serve. Probabilmente il programma di installazione della
vostra distribuzione, che voi siate stati o meno avvisati, vi ha
installato molti demoni (servers, processi serventi) attivi fin dal
boot che vi saranno inutili; invocate l'installer interattivo dei
pacchetti (ad esempio per redhat: gnorpm o
glint) e guardate, sopratutto fra i pacchetti di
rete, quelli che vi saranno inutili; dopodiche' disinstallateli.
Per una macchina locale in genere non servono tutte le funzionalita'
di un demone completo; ad esempio, ammesso che vi serva un server http
installato, probabilmente apache e' troppo per il vostro caso, o
comunque potete configurare il tutto in modo che vi occupi meno
risorse. Consultate attentamente la documentazione di quel pacchetto
(manpages e sotto /usr/doc ad esempio) per
ridimensionarne l'uso. Analogamente l'uso di
leafnode/leafnode+ (o facendo una scelta ancora piu'
radicale slrn+slrnpull) puo' spesso sostituire inn,
al prezzo di capacita' ridotte rispetto ad un server standard, ma
adatte al caso di un computer con connessione dial-up. Potreste
consultare
http://freshmeat.net o
http://linuxberg.flashnet.it per trovare sostituti validi.
Un altro sistema per recuperare risorse e' quello di lanciare i
servizi solo quando vi servono (per le disattivazioni potete usare o
un tool se presente (ad esempio ntsysv per redhat)
oppure potete editare i files di partenza di init. Potreste lanciarlo
via script quando vi serve, o usare inetd (man
inetd) per lanciarlo solo quando tentate la connessione (anche locale)
al vostro processo servente (per riavviare inetd non serve completare
un reboot, basta mandargli un segnale hup: killall -HUP
inetd).
Se avete 16-32 mega e' altamente improbabile che riusciate ad usare
ambienti avanzati come gnome e
kde; molto meglio ripiegare su un semplice window
manager ben configurato e con qualche utility veramente utile; un
vantaggio della modularita' di unix e' che potete rimpiazzare cio' che
volete con cio' che preferite senza troppi rimorsi. In merito a quale
wm usare, e' difficile dare un consiglio valido per tutti che non sia
"provarli tutti"... cito solo quelli piu' di recente concezione (non
necessariamente quelli piu' adatti al vostro caso): window
maker, icewm,
sawmill. In linea generale, personalmente
consiglierei di non fissarsi troppo con soluzioni grafiche quando la
grafica non e' strettamente necessaria *e* non si hanno risorse
sufficienti per farla funzionare decentemente. Imvho un client news
grafico vale operativamente ne piu' ne meno di uno testuale come tin o
slrn, ad esempio...
MEMORIA: controllate con free che linux stia vedendo tutta la
ram. Se non e' cosi' (chiamata bios un po' "capricciosa"), passate al
kernel al boot il parametro
mem=ivostrimegabytes. Dovendolo passare al kernel al
momento di boot, dovete cercare nel meccanismo di boot che state
usando (es. lilo, loadlin) il modo
piu' corretto di farlo arrivare al nucleo.
VELOCITA' I/O DISCHI: ci sono concrete possibilita' che il
vostro setup di linux non stia sfruttando appieno il vostro disco. In
questo caso il comando che vi puo' essere piu' utile e'
hdparm. Questa utility varia i parametri del driver
ide standard, in modo potenzialmente periocoloso per l'integrita' dei
dati; il programma in questione, quindi, dovrebbe essere testato con
molta calma e solo dopo aver fatto un backup delle cose piu'
importanti. L'invocazione senza opzioni, o con le opzioni -i
o -I o -t o -T non dovrebbe comportare
rischi (rispettivamente richiesta di informazioni e test di velocita')
ma siate comunque cauti. Attenzione all'utilissima opzione -u
nel caso abbiate un vecchio chipset ed un vecchio kernel, e fate
altrettanta attenzione per le opzioni -X, che va usata
normalmente in congiunzione con -p e puo' essere molto
pericolosa. Leggete con attenzione assoluta la manpage del comando
prima di provarlo; siete stati avvisati. Al di la dei rischi
potenziali, hdparm permette talvolta guadagni in
velocita' a dir poco sorprendenti, e usando l'opzione -u si
puo' alzare di molto la reattivita' del sistema ad eventi come la
presenza di dati nella fifo della vostra uart (insomma, della
seriale).
IRQ: questa volta il comando che potrebbe interessare e'
irqtune, che riordina le priorita' dei vettori
irq. In breve, permette, analogamente all'opzione -u di
hdparm (che pero' funziona chiaramente solo per
riflesso, partendo dall'interrompibilita' dell'i/o dei dischi), di
alzare molto la responsivita' del sistema. Ottimo se avete la
sensazione che la seriale, durante i collegamenti internet, non sia
sfruttata veramente appieno (ed in particolare se avete dei problemi
di underrun sulla seriale).
ANCORA LA SERIALE: per quanto possa sembrare assurdo capita
ancora che in diverse installazioni la seriale del modem risulti avere
una velocita' massima impostata bassa. Questa volta il comando che ci
puo' tornare comodo e' setserial (tanto per
cambiare: leggete la manpage), che userete per impostare il flag della
velocita' a spd_vhi.
VIDEO: non affronto questa complicata questione; segnalo solo che l'aggornamento od il cambio del server, unita ad una attenta lettura della manpage e della documentazione del server su http://www.xfree86.org puo' portare discreti guadagni, specie per quei chipsets che permettono di essere overclockati (ovviamente non e' consigliato farlo, ma puo' essere un modo creativo di fare il funerale alla vostra vecchia scheda)
ESEMPIO: questo e' un pezzo disordinato e non commentato del mio /etc/rc.d/rc.local. non copiatelo direttamente o farete solo dei danni. e' qui solo per chiarire eventuali dubbi sulle invocazioni:
setserial /dev/modem spd_vhi
/sbin/irqtune -f
sync
hdparm -A1 -d1 -c1 -u1 -m16 /dev/hda
hdparm -A1 -d1 -X66 -c1 -u1 -m16 -f /dev/hdb
hdparm -u1 -c1 /dev/hdc
hdparm -u1 -c1 -d1 /dev/hdd
sync serve a sincronizzare i buffers del disco prima di cambiare
impostazioni (in effetti sarebbe utile invocare
hdparm con l'opzione -f), -f in
irqtune non dovrebbe essere necessario nel vostro caso, e hda
corrisponde ad un vecchio samsung 6.4, hdb ad un western
digital 13.6, hdc ad un cdrom player asus 40x, hdd ad un
masterizzatore/riscrivibile creative 2024e. /dev/modem e' un
link simbolico che punta alla ttySX corrispondente alla seriale a cui
e' collegato il modem.