Sfruttare il prelinking per velocizzare la Lince..

Posted by RedBlue on June 17, 2010 · 2 mins read

Agli albori dell'informatica, i singoli programmi erano dei grossi file (per non parlare dei tempi delle schede perforate) che dovevano essere interamente caricati in memoria per poter essere eseguiti, e l'elaboratore era in grado di mantenerne ed eseguirne uno solo per volta. Oggi la situazione è radicalmente diversa: pur essendo la memoria cresciuta in maniera esponenziale, i programmi sono cresciuti (in termini di dimensioni) ancora più velocemente, in più siamo nell'era del multitasking, per cui nella memoria del nostro pc si trovano residenti svariati programmi ad ogni istante.. Ciò è reso possibile (tra le altre cose) dall'operazione di linking: quando avviamo un programma, in memoria va subito la parte essenziale del programma stesso, e dinamicamente vengono poi caricate (linkate = collegate) le altri parti quando servono (è quello che accade ad esempio con le librerie, le dll, in Windows)..

Finita la lezione di Sistemi Operativi, passo ad illustrarvi un metodo per velocizzare l'avvio delle applicazioni in Linux: si tratta del prelinking. In pratica si agisce sugli indirizzi di memoria a cui fanno capo le parti non essenziali di un programma per velocizzarne l'avvio (la spiegazione sarebbe più complicata, ma preferisco risparmiarvela in quanto dovrei spiegare ampiamente come funziona il linking dinamico). Utilizzare questo stratagemma è semplicissimo (molto più di tutta la spiegazione che ho fatto finora), basta installare il seguente pacchetto:

sudo apt-get install prelink

Per poi andare a modificare il file di configurazione:

sudo nano /etc/default/prelink

Andando a modificare la riga PRELINK=unknown in PRELINK=yes. Non serve nemmeno riavviare, dopo un pò di tempo (dipende da quanto è potente il vostro pc, potrebbe anche metterci più di 10 minuti, ma tranquilli è solo la prima volta, poi è estremamente più veloce) dovreste cominciare a notare la differenza.. ;)

C'è da dire che se riscontrate problemi (è un'ipotesi remota, ma pur sempre possibile), per tornare indietro basta dare:

sudo prelink -ua
sudo apt-get purge prelink

Tutto qui, come dicevo è più semplice da fare che da spiegare..

Alla prossima..

NB. Per chi volesse cimentarsi, qui c'è la manpage di prelink, con tutte le opzioni, io personalmente mi accontento di quelle standard, in quanto comunque manipolare tali opzioni in maniera errata può portare a malfunzionamenti del sistema..