TAGS CLOUD
Incrementa dimensioniDecrementa dimensioni
Da zero a cento in pochi secondi!
Le tecniche per rendere più rapide, fino ai limiti del possibile, le fasi di avvio e spegnimento del computer. Dove intervenire e le ottimizzazioni che danno benefici sicuri
(pagina 1 di 8)
Premete il tasto di accensione del vostro computer/laptop e aspettate che il sistema sia perfettamente avviato. Se siete fortunati questa operazione richiederà pochissimi secondi, altrimenti, significa che avete proprio bisogno di leggere questo articolo. Ma prima di procedere, per comprendere appieno le modifiche che apporteremo al sistema, dovremo illustrare brevemente cosa accade durante la fase di avvio. Nell'instante in cui accendiamo il computer, il processore si trova in uno speciale stato di reset, il cui unico scopo è il caricamento della prima istruzione del firmware del BIOS (Basic Input Output System), il quale contiene tutto il necessario per attivare i componenti hardware che saranno utilizzati per l'avvio (ad esempio attivando un controller SCSI e relativi dischi). Successivamente, il BIOS indicherà al computer i dispositivi di avvio validi nel quale cercare il settore o l'immagine del boot loader (tipicamente Grub).  Queste fasi vengono svolte dall'hardware del computer. Per migliorare le prestazioni sarebbe anche possibile intervenire su questi componenti, ma nel nostro caso ci occuperemo solo delle ottimizzazioni a livello software. Il boot loader in genere è estremamente rapido. Se sono disponibili più scelte e il valore di attesa è eccessivamente lungo, è sempre possibile ridurlo. Sia che usiate LiLo sia che si tratti di Grub, basterà cercare la voce “timeout” nella relativa documentazione. Supponiamo che il boot loader debba avviare il sistema operativo GNU/Linux: esso caricherà il kernel e l'immagine initrd (se presente) in un'area di memoria dedicata e cambierà l'instrucion pointer del processore in modo da puntare alla prima cella di memoria del kernel. Il kernel inizierà dunque la sua esecuzione inizializzando i moduli per il riconoscimento dell'hardware e attivando i componenti base del sistema operativo, fino all'avvio del primo vero processo userspace: init.

Il padre ti tutti i processi
Durante l'avvio, init eseguirà alcuni script di inizializzazione e avvierà tutti i servizi definiti nel runlevel predefinito. Ogni runlevel descrive una configurazione di elementi da attivare e disattivare: il runlevel 1 viene utilizzato per la manutenzione straordinaria, quelli dal 2 al 5 vengono utilizzati per il normale funzionamento, mentre i runlevel 0 e 6 sono relativi allo shutdown (arresto) e al riavvio della macchina. Al momento, esistono due diversi “stili” per l'organizzazione dei runlevel:

BSD - ogni runlevel ha uno script che indica cosa avviare e cosa terminare alla sua attivazione. Esso è usato prevalentemente da Slackware e derivate;

SystemV - ogni runlevel ha una directory nella quale sono contenuti diversi link simbolici per l'attivazione e disattivazione dei servizi. I link che iniziano con “S” determinano l'avvio, quelli con “K” la loro terminazione. Questo sistema è utilizzato dalla maggior parte delle distribuzioni GNU/Linux (Figura 1).

Alcune delle ottimizzazioni che proponiamo sono basate su SystemV.
Pagina 1/8
Lascia un commento
Tag: linux, distribuzioni, boot, avvio, grub, lilo, gnu, tuning, boot parallelo
Condividi