Cos’è un bootloader e come funziona?
I bootloader assicurano che tutti i dati rilevanti del sistema operativo siano già caricati nella memoria principale quando il dispositivo viene avviato. Durante il processo di avvio, il firmware trasmette le informazioni necessarie per farlo.
Che cos’è un bootloader?
I dati del sistema operativo devono essere caricati direttamente nella RAM all’avvio del dispositivo. Ciò è reso possibile dal cosiddetto bootloader, chiamato anche programma di avvio o boot loader. Un bootloader viene di solito eseguito subito dopo l’avvio di un dispositivo, tramite un supporto di avvio come un disco rigido, un CD/DVD o una chiavetta USB. Le informazioni in merito alla posizione del bootloader si trovano nel supporto di avvio del firmware del computer (ad esempio nel BIOS). L’intero processo è comunemente chiamato “boot”, “booting” o “bootstrap”.
Il termine “bootloader” è la forma abbreviata delle due parole inglesi “bootstrap loader”, espressione che deriva dal detto inglese “to lift oneself by one’s own bootstrap” che significa letteralmente “tirarsi su per le fibbie degli stivali” e allude, dunque, al ruolo di supporto decisivo che il boot manager svolge nel processo di avvio del computer.
Come funziona un bootloader?
Quando si preme il pulsante Start su un computer, la prima cosa che si vede sullo schermo sono alcune informazioni relative all’hardware integrato. Il software responsabile di questo messaggio è prima di tutto il già citato firmware del dispositivo, che di solito viene implementato dai produttori in una memoria flash sulla scheda madre del computer. La maggior parte dei PC desktop e notebook utilizzano il già collaudato BIOS (Basic Input/Output System) o il più moderno UEFI (Unified Extensible Firmware Interface). Entrambe le applicazioni raccolgono vari dati hardware e creano un elenco completo di tutte le unità disponibili del dispositivo.
Una volta completato il processo, il firmware esamina i supporti dati trovati uno dopo l’altro per cercare un bootloader, più precisamente per individuare una firma speciale, la cosiddetta firma di avvio (chiamata anche “boot record”). La ricerca viene eseguita inizialmente sui supporti rimovibili collegati o inseriti (CD/DVD, chiavette USB, dischi rigidi esterni, ecc.), poi sui dischi rigidi installati in modo permanente. In quest’ultimo caso, il bootloader o la sua firma si trovano solitamente nel Master Boot Record (MBR), che contiene anche le tabelle delle partizioni del supporto dati. Una volta identificato un bootloader, questo viene caricato e il sistema viene avviato. Se la ricerca non ha esito positivo, il firmware emette un messaggio di errore.
Dopo aver installato correttamente un sistema operativo, questo si avvierà con un bootloader situato solitamente sulla partizione principale. Tuttavia, se il sistema è danneggiato e desiderate fare una nuova installazione, dovete avvalervi del supporto di avvio rimovibile già menzionato; questo vale, naturalmente, anche se non è ancora presente un sistema operativo. La nostra guida vi informa su come convertire una chiavetta USB in un supporto di avvio completamente funzionale.
Dove sono memorizzati esattamente i bootloader?
Per quanto riguarda la posizione dei bootloader, ci sono essenzialmente due possibilità:
- Il bootloader è memorizzato nel primo blocco del supporto di avvio.
- Il bootloader è memorizzato in una partizione specifica del supporto di avvio.
La prima possibilità è strettamente legata al principio dei Master Boot Record, che contengono non solo il riferimento al bootloader richiesto dal firmware, ma anche il software di avvio stesso. Il primo blocco di memoria disponibile o settore del supporto è sempre riservato al record, indicato come blocco di avvio o settore di avvio a causa di questa importante funzione.
Nel secondo caso, il sistema operativo utilizza una partizione selezionata, per cui il file system sottostante e le tabelle delle partizioni utilizzate possono essere molto diverse. Il fattore decisivo è sempre il firmware, che in questo modello di memoria di bootloader fornisce anche un formato di file specifico per il boot manager. I dispositivi con UEFI, ad esempio, utilizzano il formato PE/COFF (Portable Executable / Common Object File Format).
I bootloader possono anche essere distribuiti su più livelli consecutivi. I multistage bootloader comprendono fino a tre diversi livelli, che vengono eseguiti uno dopo l’altro. Sono tipicamente usati quando il programma di avvio è troppo grande per il settore di avvio.
I compiti di un bootloader in sintesi
I bootloader fungono da intermediari tra l’hardware e il sistema operativo. Non appena un bootloader è stato inizializzato dal rispettivo firmware, ha la responsabilità di sistema di avviare il booting. Il primo compito è quello di caricare la memoria centrale, fondamentale per la funzionalità del processore.
Nel secondo passaggio, il bootloader carica il kernel del sistema operativo, cioè il componente di base del software di sistema che controlla tutti gli accessi alla memoria e al processore e contiene tutti i driver più importanti. Inoltre, elabora vari compiti e comandi di routine, come l’integrazione dell’archivio di dati. Alcuni bootloader eseguono compiti che vanno oltre lo scopo effettivo del software di avvio, ad esempio:
- Riconoscere e avviare ulteriori bootloader disponibili
- Eseguire programmi applicativi (utilizzati negli anni ‘80 per eseguire giochi per computer direttamente dal dischetto)
- Correggere funzioni errate o mancanti e input nel firmware
- Caricare un firmware alternativo
Dopo aver completato con successo tutti i compiti, il bootloader passa infine la responsabilità di sistema al kernel.
Quali tipi di bootloader esistono?
Abbiamo riassunto gli aspetti più importanti sui bootloader. La seguente tabella elenca quali sono i bootloader più noti e più importanti:
Nome del bootloader | Descrizione |
---|---|
Bootmgr | Programma di boot dei sistemi Microsoft da Windows Vista o Windows Server 2008 |
NT-Loader (NTLDR) | Programma di boot dei sistemi Microsoft fino a Windows XP o Windows Server 2003 |
barebox | Bootloader per sistemi integrati in stampanti, macchine fotografiche, auto, aerei, ecc. |
boot.efi | Bootloader EFI, in uso su dispositivi Mac dal 2006 |
BootX | Ex bootloader di sistemi operativi Mac |
Grand Unified Bootloader (GRUB) | Programma di boot gratuito per sistemi operativi simili a Unix, come Linux |
ARM Core Bootloader | Bootloader per microcontrollori (usato ad esempio su iPhone) |
OpenBIOS | Boot manager gratuito e portatile con licenza GNU-GPL |