Prima di passare ad uno degli argomenti di maggiore interesse, ossia
l'installazione del sistema, è necessario spendere qualche parola sul bootloader.
Il bootloader è un piccolo programma utilizzato, come suggerisce il nome stesso, per il boot del sistema. Spesso si commette l'errore di identificare il bootloader con il programma che lo fornisce: prendendo come esempio il loader più utilizzato, LiLO (Linux LOader), si dice che questo sia il bootloader anche se in realtà non è propriamente così: LiLO (il programma) fornisce il bootloader.
Il funzionamento di un booloader è assai complicato ma lo si può sintetizzare e semplificare in poche fasi:
- in un primo momento, il BIOS della macchina carica il bootloader;
- questo, in seguito, carica il kernel del sistema o i "boot sectors" di altri sistemi operativi (come Windows) passando ad altri programmi la successiva operazione di boot (COMMAND.COM in Windows).
A questo punto la funzione del boot loader è terminata ed inizia la vera e propria fase di bootstrap del sistema operativo.
Ma dove risiede il bootloader? Molti l'avranno cercato in lungo e in largo per il proprio hard disk senza trovarne la minima traccia, altri ancora se lo saranno chiesti senza però indagare troppo sulla sua locazione. Ebbene, molto spesso il bootloader viene installato su una particolare zona del disco detta MBR (Master Boot Record), corrispondente ai primi 512 byte di un disco, che può essere divisa in due parti (sarebbero in verità tre ma per semplicità non consideriamo l'ultima): la zona del "Program Code", di 446 byte, e la "Partition Table", di 64 byte. La prima non è altro che la locazione dove fisicamente viene installato il bootloader, mentre la seconda, come il nome stesso suggerisce, è utilizzata per definire le partizioni presenti sul disco.
Adesso che per sommi capi abbiamo visto il funzionamento di un bootloader, vediamo quali sono i loader più utilizzati sotto Linux.
Primo fra tutti va citato certamente LILO, probabilmente il più diffuso ed affidabile, con il supporto per moltissimi tipi di filesystem. Nelle ultime versioni è stato corretto un bug che impediva a LILO di installarsi in dischi di determinate dimensioni, rendendolo quindi inutilizzabile con i moderni dischi di grande capacità.
Del tutto differente rispetto a LILO è LOADLIN, che permette di "arricchire" un normale boot di un sistema DOS (e quindi anche Windows!) in modo da riuscire ad avviare anche altri sistemi. Il funzionamento di LOADLIN, visto daun punto di vista non tecnico, è semplicissimo: nel file AUTOEXEC.BAT (o CONFIG.SYS) è inserita una chiamata a LOADLIN stesso e, tramite un file come BOOT.SYS che contiene i dati per i sistemi operativi da avviare, è possibile effettuare la scelta del sistema da avviare. Il vantaggio di LOADLIN si fa sentire quando si installa Linux su un disco che già ospita Windows: non è necessario ridefinire o modificare alcun settore di boot, visto che LOADLIN non va a scriverci ma è richiamato dopo che l'MBR è stato letto.
Una menzione a questo punto merita anche GRUB, un loader recente che, in pochissimi Kb, permette operazioni a dir poco stupefacenti. In primo luogo, la schermata di selezione del sistema da avviare non è più a caratteri, ma possiede una gradevole e semplice interfaccia grafica. Inoltre, è dotato di una minima shell che permette di "vedere" le partizioni (ma anche i singoli file!) addirittura prima che il sistema venga avviato! Questa operazione, sebbene non troppo adatta a chi sia alla prime armi, è utilissima per recovery o boot di un kernel non precdentemente specificato al momento della configurazione. Ultimo ma non meno importante, GRUB è distribuito con licenza GPL, a differenza di LILO.